从另一个脚本运行节点包+参数
我发现自己在一个情况下,我不得不运行一个单一的命令,例如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'));