NPM:无法要求全局安装的模块

3

我正在尝试使用NPM包browserify,我已经通过以下命令全局安装了它:

npm install -g browserify

这是文件bundle.js,我尝试使用browserify进行要求:

var browserify = require('browserify');
var fs = require('fs');
var b = browserify();

var outputFileStream = fs.createWriteStream('./test_bundle.js');

b.add('index.js');
b.bundle().pipe(outputFileStream);  // process.stdout

当我执行node build.js时,我会得到这个错误:
Error: Cannot find module 'browserify'
( etcetera...)

如果我改为在本地安装browserify:
npm install -g browserify

我没有收到任何错误信息,构建过程非常顺利。

我已经将一个小的演示程序上传到了这个Github存储库:

https://github.com/loldrup/test_require

如果您正在使用Windows 7计算机,则可以通过克隆来重现我的错误:

git clone https://github.com/loldrup/test_require

并运行:

node build

编辑:

即使我已将相关节点路径添加到系统变量“path”中,并重新启动了命令提示符,我仍然无法全局引用已安装的节点模块:

enter image description here

1个回答

4

默认情况下,Node.js并不会在全局模块所在的文件夹中寻找模块。

在脚本最开始处添加module.paths.push('全局node_modules文件夹路径') 或者设置环境变量


即使我的PATH现在看起来像这样: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;...etc...;C:\Program Files\nodejs\;C:\Users\Jon\AppData\Roaming\npm\ 我仍然会收到一个错误:module.js:328throw err;Error: Cannot find module 'browserify' - user134055
1
你忘记添加 node_modules 文件夹了:C:\Users\Jon\AppData\npm\node_modules - Jannik Becher
仍然没有运气。请查看问题中的更新文本/图像。 - user134055
对我来说,在Ubuntu上,将 module.paths.push("/usr/local/lib/node_modules"); 添加到 webpack.config.js 的开头就可以了。谢谢! - szegheo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接