我的目标是弄清楚如何在现有的javascript应用程序中使用节点模块
我现有的应用程序是基于jQuery和ReactJS。
我遇到了一些我想开始使用该项目的节点模块,这些模块似乎仅作为模块提供(因此只需添加一个{即可使用它们) {1}}代码)。
以前我一直在使用script
安装库,只需使用bower
标签即可在本地使用它们。
我知道我可以使用script
或Browserify
将一堆Node模块捆绑到一个javascript文件中,但是如何将其中的模块暴露给我现有的应用程序?
我希望能够做的是
Webpack
其中<script src="jquery.min.js"/>
<script src="bundle.js"/>
<script src="myapp.js"/>
可以使用全局变量作为npm模块的myapp.js
。
我预见到的一个问题是,module_x
可能已经包含了jquery,那么我该如何处理呢?我知道有些人可能会说&#34;将整个项目转换为模块&#34;然后它就会起作用!但是我想知道如果不这样做就可以做到,尽管有各种好处; - )
答案 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