我的目标是弄清楚如何在现有的 javascript 应用程序中使用节点模块
我现有的应用程序是基于 jQuery 和 ReactJS 的。
我遇到了一些我想开始在项目中使用的节点模块,它们似乎只能作为模块使用(因此不能通过简单地添加脚本
来使用它们) > 标签)。
以前,我一直使用 bower
安装库,并仅使用 script
标记在本地使用它们。
我知道我可以使用 Browserify
或 Webpack
将一堆 Node 模块捆绑到一个 javascript 文件中,但是如何公开其中的模块它到我现有的应用程序吗?
我想要做的是
<script src="jquery.min.js"/>
<script src="bundle.js"/>
<script src="myapp.js"/>
其中 myapp.js
可以使用全局变量来表示 module_x
这是一个 npm 模块。
我预见到的问题之一是,bundle.js
可能已经包含 jquery,那么我该如何解决这个问题呢?我知道有些人可能会说“将整个项目转换为模块”,然后它就可以工作了!但我想知道是否可以在不这样做的情况下完成,尽管有这么多好处;-)
最佳答案
这不是更好的做法,但您可以将全局变量与 browserify 一起使用。这样您就可以在您需要的任何范围内访问通过 require()
获得的库。只需使用:
global.lib = require('somelib');
然后只需通过browserify浏览您的源文件即可。如果您不知道如何操作,请阅读documentation 。它非常容易使用。
之后,只需从您需要的任何地方访问lib
即可。
此外,如果您已经将 jQuery 定义为 bundle 之前的全局变量,您将能够在浏览器化文件中访问它。在你的主 browserify 文件中,只需:
var someVar = require('./somefile.js');
var allDivs = $("div"); // $ was a global before this file runs
关于javascript - 我可以在现有的 javascript 应用程序中使用节点模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27189089/