Можно ли использовать Require JS для данной строки javascript? - PullRequest
0 голосов
/ 24 марта 2020

Насколько я понимаю Require JS, он используется для включения файла javascript с указанным c url: define([foo/bar.js], function(...)), но мой вариант использования немного странный. Мне нужно, чтобы вместо этого потребовалась действительная строка javascript, то есть:

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

define([str], function(...))

Хотя выполнение eval с IIFE может работать с приведенной выше строкой, оно, похоже, не работает с моим фактическим вариантом использования, что я не уверен, почему это так, но это работает, если у меня есть строка, расположенная в файле js, в котором я затем использую define, поэтому я предполагаю, что Require JS делает нечто большее, чем просто eval. Любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Хм, это интересно. Как насчет этого:

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

Только что проверил это, и оно работает:)

0 голосов
/ 26 марта 2020

Вы не можете напрямую, но если бы вы вместо этого читали строку как dataurl (который по сути является base64), то Require JS действительно может это понять.

...