Bar*_*s41 2 javascript node.js browserify
我创建了一个新项目
一世 npm install -g browserify
我使用cmdline进行了测试browserify app.js > bundle.js.凉.
我想缩小,所以我 npm install uglifyify --save-dev
我使用cmdline进行了测试browserify -g uglifyify app.js > bundle.js.大.
现在我想用代码做这个,但我明白了 Error: Cannot find module 'browserify'
这是我的代码,基本上是替换cmdline
var browserify = require('browserify')
var fs = require('fs')
var bundler = browserify('./app.js')
bundler.transform({
global: true
}, 'uglifyify')
bundler.bundle()
.pipe(fs.createWriteStream('./bundle.js'))
Run Code Online (Sandbox Code Playgroud)
看来我需要再次在本地安装browserify到这个项目?
正如在其他的答案说,要解决这个问题的一种方法是,你可以安装browserify在本地而不是全局,如:npm install --save browserify uglifyfy。然后你可以添加一个scriptin package.json:
...
"scripts": {
"build": "browserify app.js > bundle.js",
...
},
...
Run Code Online (Sandbox Code Playgroud)
现在,npm run-script build将知道如何找到本地 browserify,它将在您的node_modules/目录中。你require('browserify')会工作的,因为 browserify 现在是本地的。
解决此问题的另一种方法是NODE_PATHenv 变量。在您的bashrc或等效的中设置此变量,如下所示:
export NODE_PATH=$NODE_PATH:$HOME/.nvm/versions/node/v4.2.6/lib/node_modules
Run Code Online (Sandbox Code Playgroud)
调整全局 node_modules 所在位置的路径。然后,您可以require()在代码中使用 -g 标志安装任何内容。
然而,这是次优的,因为它可能导致错误和误解。但如果是针对一些快速而肮脏的脚本,它会有所帮助。