Ответ 1
Похоже, вы объединяете множество различных запросов RequireJS:
-
Как вы можете использовать RequireJS, установленный через Node в браузере?
Вы можете просто установить его с помощью
npm install requirejs
, а затем у вашего HTML файла есть элементscript
, который указывает наnode_modules/requirejs/require.js
. Точно так же, как вы показываете в своем фрагменте кода. Это все. При этом мне не нравится иметьnode_modules
в том, что я развертываю, поэтому у меня обычно есть копия процесса сборкиrequire.js
в другом месте. -
Как вы можете загружать модули, установленные npm, с помощью RequireJS в Node?
Предположим, что без RequireJS вы загрузили модуль
foo
, выполнивrequire('foo')
. Вы устанавливаете RequireJS и загружаете его какrequirejs
. Как вы загружаетеfoo
с помощью RequireJS? Вы можете просто сделатьrequirejs('foo')
. До тех пор, пока RequireJS не найдет его в своей собственной конфигурации, он выдает в качестве последнего средства вызов Node собственногоrequire
и загрузит его таким образом? Вот иллюстрация. Установите RequireJS с помощьюnpm install requirejs
. Создайте этот файл:var requirejs = require("requirejs"); var fs = requirejs("fs"); console.log(fs);
Затем запустите его. Вы попадете на консольный модуль Node
fs
. -
Как вы можете загрузить npm-установленные модули с RequireJS в браузере?
Это зависит от модулей. RequireJS не содержит кода, который волшебным образом сделает модуль, установленный на npm, в браузере. В конечном итоге это зависит от того, как модули структурированы. Некоторые случаи:
а. Некоторые модули, оснащенные npm, могут быть загружены с помощью RequireJS без изменений. Там одна библиотека, которую я создал, которая распространяется через npm и все же представляет собой набор модулей AMD. Тривиально загружать их с помощью RequireJS в браузере.
В. Это может потребовать обернуть вызовы
define
. Недавно я загрузилmerge-options
в один из моих проектов сgulp-wrap-amd
.merge-options
является модулем CommonJS. Он не поддерживает RequireJS из коробки, но если вы завернете его вызовомdefine
, он будет работать.С. Это может потребовать что-то более сложное, прежде чем оно будет загружено в браузере. Например, если модуль полагается на модуль Node
fs
, вам необходимо предоставить заменуfs
, которая выполняется в браузере. По-видимому, это будет представлять собой поддельную файловую систему для вашего кода.