我正在尝试将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
返回jquery@2.1.4
。
知道我做错了吗?
编辑:在本地安装模块(没有-g选项)似乎与browserify一起使用 - 这是正确的方法吗?我更愿意使用全局安装的模块。
答案 0 :(得分:4)
强烈建议在本地安装模块。这样,每个项目都依赖于它所需的特定版本,并且不存在由向后不兼容的更改进行回归的风险。升级全局模块时,依赖于它的任何内容都可能会中断。
无论您是否使用browserify,都应将npm依赖项修复为特定版本(可能是创作时的最新版本)。只有在您有时间进行测试并且确保没有任何中断时,才应使用npm-check-updates等工具对它们进行升级(超过主要版本)。
所有这些,您可以从项目目录中运行npm link jquery
,以使本地依赖项(在node_modules中)符号链接到全局安装的jquery。这在开发依赖模块时很有用,但它不适合正常使用。
在您的情况下,请使用本地依赖项。