从另一个脚本运行节点包+参数

我发现自己在一个情况下,我不得不运行一个单一的命令,例如node compile.js

该.js文件需要运行以下

browserify -t jadeify client/app.js -o bundle.js

所有的依赖关系都已经安装好了,通过在CLI中运行这个命令就可以正常工作,只需要弄清楚如何从节点脚本中执行它。

我们在package.json里面也有一些类似的东西

"script" : [ "compile": "browserify -t jadeify client/app.js -o bundle.js" ]当你执行cd /project && npm run compile时,这个function完美无缺,但是不能通过exec

谢谢

您可以通过process.argv访问脚本参数。

包含命令行参数的数组。 第一个元素是'node',第二个元素是JavaScript文件的名字。 下一个元素将是任何额外的命令行参数。

然后你可以使用browserify api和jadeify来获得你所需要的。

 var browserify = require('browserify')(); var fs = require('fs'); var lang = process.argv[2]; console.log('Doing something with the lang value: ', lang); browserify.add('./client/app.js'); browserify.transform(require("jadeify")); browserify.bundle().pipe(fs.createWriteStream(__dirname + '/bundle.js')); 

$ node compile.js enGB运行它

你应该可以使用api-example,并按照jadeify 设置段落的build议将其扩展。

 var browserify = require('browserify'); var fs = require('fs'); var b = browserify(); b.add('./client/app.js'); // from jadeify docs b.transform(require("jadeify")); // simple demo outputs to stdout, this writes to a file just like your command line example. b.bundle().pipe(fs.createWriteStream(__dirname + '/bundle.js'));