2

我的目标是弄清楚如何在现有的 javascript 应用程序中使用节点模块

我现有的应用程序是基于 jQuery 和 ReactJS 的。

我遇到了一些我想开始在项目中使用的节点模块,它们似乎只能作为模块使用(因此不能通过简单地添加script标签来使用它们)。

以前我一直在使用bower安装库并在本地使用它们,只需使用script标签即可。

我知道我可以使用BrowserifyWebpack将一堆 Node 模块捆绑到一个 javascript 文件中,但是如何将其中的模块公开给我现有的应用程序?

我想做的是

<script src="jquery.min.js"/>
<script src="bundle.js"/>
<script src="myapp.js"/>

wheremyapp.js可以使用全局变量来表示module_x哪个是 npm 模块。

我预见的问题之一是说bundle.js可能已经包含 jquery,那么我该如何解决这个问题呢?我知道有些人可能会说“将您的整个项目转换为模块”,然后它就可以工作了!但我想知道是否可以不这样做,尽管有所有好处;-)

4

1 回答 1

3

这不是更好的做法,但您可以将全局变量与 browserify 一起使用。这样,您将能够require()在您需要的任何范围内访问您获得的库。只需使用:

global.lib = require('somelib');

然后只需通过 browserify 浏览的源文件。如果您不知道如何,请阅读文档。它很容易使用。

之后,只需lib从您需要的任何地方访问。

此外,如果您已经将 jQuery 定义为包之前的全局,您将能够在浏览器化文件中访问它。在您的主要 browserify 文件中,只需:

var someVar = require('./somefile.js');
var allDivs = $("div"); // $ was a global before this file runs
于 2014-11-28T14:16:49.580 回答