【问题标题】:Run Node Package + Arguments from another script从另一个脚本运行节点包 + 参数
【发布时间】:2015-08-07 12:17:45
【问题描述】:

我发现自己处于必须运行单个命令的情况,例如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" ] 当您通过 ssh 执行 cd /project && npm run compile 而不是通过 exec 时,这非常有效

谢谢

【问题讨论】:

  • 除了调用一个单独的进程,你还可以在你的compile.js文件中使用browserify api
  • 当然,但这是我不知道该怎么做,所以需要一个例子/它已经完成 - 在谷歌上找不到任何有用的结果
  • node.js shell command execution 可能重复?在那里应用解决方案会导致require('child_process').spawn('browserify', ['-t', 'jadeify', 'client/app.js', '-o', 'bundle.js])

标签: node.js browserify


【解决方案1】:

您应该能够使用 api-example 并按照jadeify setup 段落所建议的转换对其进行扩展。

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')); 

【讨论】:

  • 感谢西蒙的慷慨投入!今晚我会看看这个——我实际上从来没有做过任何节点脚本,所以这对我来说是 100% 新的,所以非常感谢你清晰而简单的回复。但是,您能否指出我如何将变量/字符串传递到脚本的方向?例如node compile.js --lang enGB,非常感谢
  • @owen 你应该看看npmjs.com/package/minimist,正如stackoverflow.com/questions/4351521/…的答案所暗示的那样
  • @OwenMelbourne 有用吗?我看到您提供了赏金,但是为什么在原始问题中没有 php exec 时要询问它? (您应该能够使用 php exec 运行命令行版本就好了,如果它不起作用,则可能是可执行文件的路径、环境设置或与权限相关的问题)
【解决方案2】:

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

包含命令行参数的数组。第一个元素是“节点”,第二个元素是 JavaScript 文件的名称。下一个元素将是任何其他命令行参数。

然后您可以使用browserify apijadeify 来获得您需要的东西。

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 运行它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    相关资源
    最近更新 更多