使用 browserify 时找不到模块 'jquery'

Cannot find module 'jquery' when using browserify

我正在尝试将 browserify 用于小型 Web 应用程序,我想做什么 实现非常基本:我希望能够 require('jquery') 我的 JS 代码而不是将依赖项与 <script> 标记链接在一起 HTML 代码。

所以,我在我的 JS 文件的第一行中有这个叫做 main.js:

require('jquery');

然后,我开始 browserify 生成 bundle.js:

browserify main.js -o bundle.js

输出:

Error: Cannot find module 'jquery' from /home/matias/dev/app/js

不过,似乎 jquery 已正确安装:

npm -g list | grep jquery

returns jquery@2.1.4.

知道我做错了什么吗?

编辑:安装模块'locally'(没有-g 选项)似乎可以与browserify 一起使用——这是正确的做法吗?我更愿意使用全局安装的模块。

强烈建议在本地安装模块。这样,每个项目都取决于它需要的特定版本,并且不存在因向后不兼容的更改而导致回归的风险。当你升级一个全局模块时,任何依赖它的东西都可能会崩溃。

无论您是否使用 browserify,npm 依赖项都应固定为特定版本(可能是创作时的最新版本)。只有在您有时间使用 npm-check-updates.

等工具进行测试并确保没有任何问题时,才应升级它们(超过主要版本)

综上所述,您可以从项目目录中运行 npm link jquery创建本地依赖项(在node_modules中)符号链接到全局安装的 jquery。这在开发依赖模块的时候很有用,但不适合正常使用。

根据您的情况,使用本地依赖项。