Как использовать установленный npm requireJS для браузера

Хотя requirejs способен использовать npm-установленные модули, как использовать requirejs на первом месте, если он установлен через npm install requirejs?

Я прочитал примеры использования requirejs, перечисленных в разделе . Кажется, все они полагают, что require.js загружается в определенное место. Поскольку документация специально указала

не выполняйте что-то вроде require ( "./ node_modules/foo/foo" ).

Я предполагаю, что неправильно вставить index.html что-то вроде:

<html>
    <head>
        <script data-main="scripts" src="node_modules/requirejs/require.js"></script>
    </head>
    <body>
        <h1>Hello World</h1>
    </body>
</html>

Каков рекомендуемый способ использования requirejs, если он установлен на npm? Если я пропустил что-то из документации, пожалуйста, дайте мне знать. Спасибо вам

Ответы

Ответ 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, которая выполняется в браузере. По-видимому, это будет представлять собой поддельную файловую систему для вашего кода.