我可以在现有的javascript应用程序中使用节点模块吗?

时间:2014-11-28 12:52:04

标签: javascript jquery npm browserify webpack

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

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

我遇到了一些我想开始使用该项目的节点模块,这些模块似乎仅作为模块提供(因此只需添加一个{即可使用它们) {1}}代码)。

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

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

我希望能够做的是

Webpack

其中<script src="jquery.min.js"/> <script src="bundle.js"/> <script src="myapp.js"/> 可以使用全局变量作为npm模块的myapp.js

我预见到的一个问题是,module_x可能已经包含了jquery,那么我该如何处理呢?我知道有些人可能会说&#34;将整个项目转换为模块&#34;然后它就会起作用!但是我想知道如果不这样做就可以做到,尽管有各种好处; - )

1 个答案:

答案 0 :(得分:3)

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

global.lib = require('somelib');

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

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

此外,如果您已经将jQuery定义为捆绑包之前的全局,则可以将其访问到浏览器化的文件中。在您的主浏览器文件中,只需:

var someVar = require('./somefile.js');
var allDivs = $("div"); // $ was a global before this file runs
相关问题