是否可以在给定的javascript字符串上使用RequireJS



就我对RequireJS的理解而言,它被用来包含一个给定特定url的javascript文件:define([foo/bar.js], function(...)),但我的用例有点奇怪。我需要它需要一个实际的javascript字符串,例如:

var str = "function def() { var func1 = function() { ... }; var func2 = function() { ... }; return { func1: func1, func2: func2 };}"
define([str], function(...))

虽然用IIFE进行eval可能会用上面的字符串,但它似乎不适用于我的实际用例,我不确定为什么会这样,但如果我把字符串放在一个js文件中,然后在上面使用define,它确实有效,所以我假设RequireJS所做的不仅仅是eval。如有任何帮助,我们将不胜感激!

您不能直接读取,但如果您将字符串读取为dataurl(本质上是base64(,那么RequireJS实际上可以理解这一点。

Hm,这很有趣。这样做怎么样:

eval('define("put_module_id_here", ' + str + ')');

刚刚测试了这个,它正在工作:(

最新更新