如何使用npm安装requireJS用于浏览器

时间:2016-02-15 09:17:28

标签: javascript npm requirejs

虽然requirejs能够使用npm-installed modules,但如果通过requirejs安装了npm install requirejs,我该如何首先使用requirejs

我已阅读使用example-section中列出的require.js的示例。他们似乎都认为index.html已下载到特定位置。由于documentation具体说

  

不要做需要的事情(“./ node_modules / foo / foo”)。

我想把<html> <head> <script data-main="scripts" src="node_modules/requirejs/require.js"></script> </head> <body> <h1>Hello World</h1> </body> </html> 这样的东西放进去是不对的:

major

如果是npm-installed,建议使用requirejs的方法是什么?如果我遗漏了文档中的内容,请告诉我。谢谢

1 个答案:

答案 0 :(得分:15)

看起来你正在混淆RequireJS的一系列不同用途:

  1. 如何在浏览器中使用通过Node安装的RequireJS?

    您只需使用npm install requirejs安装它,然后您的HTML文件就会有script元素指向node_modules/requirejs/require.js。正如您在代码段中显示的那样。这就是它的全部内容。这就是说,我不想在我部署的内容中使用node_modules,因此我通常会将构建过程副本require.js复制到其他位置。

  2. 如何在Node中加载带有RequireJS的npm安装模块?

    假设没有RequireJS,您可以通过foo加载模块require('foo')。您安装RequireJS并将其加载为requirejs。如何使用RequireJS加载foo?你可以requirejs('foo')。只要RequireJS没有通过自己的配置找到它,它将作为最后的手段发出对Node自己的require的调用,并以这种方式加载它?这是一个例子。使用npm install requirejs安装RequireJS。创建此文件:

    var requirejs = require("requirejs");
    
    var fs = requirejs("fs");
    console.log(fs);
    

    然后运行它。您将进入控制台节点的fs模块。

  3. 如何在浏览器中加载带有RequireJS的npm安装模块?

    这取决于模块。 RequireJS不包含将神奇地使npm安装的模块在浏览器中工作的代码。它最终取决于模块的结构。有些情况:

    一个。一些npm安装的模块可以使用RequireJS加载而无需修改。我创作的一个库是通过npm分发的,但却是AMD模块的集合。在浏览器中使用RequireJS加载它们是微不足道的。

    B中。它可能需要包含define次调用。我最近在merge-options的一个项目中加载了gulp-wrap-amdmerge-options是一个CommonJS模块。它不支持RequireJS开箱即用,但如果你用define调用它来包装它,它将起作用。

    ℃。在将其加载到浏览器中之前,可能需要更复杂的东西。例如,如果模块依赖于Node的fs模块,那么您必须提供在浏览器中运行的fs的替代品。它可能会为您的代码提供一个虚假的文件系统。