【发布时间】:2021-10-20 14:37:05
【问题描述】:
我正在尝试使用包含“--”的参数运行 child_process spawn,但它似乎没有注册它是有原因的。
我试图生成的命令是:
wp-env run tests-cli "wp plugin update --all"
(这是一个运行wordpress环境的cli包-https://www.npmjs.com/package/@wordpress/env)
这里的双引号对于命令正常工作很重要,所以我认为这可能是问题的一部分。
这是我尝试使用的代码的总体思路:
const { spawn } = require("child_process");
const child = spawn('npx', [
"wp-env",
"run",
"tests-cli",
"wp",
"plugin",
"update",
"--all"
], {shell: true});
var scriptOutput = "";
child.stdout.setEncoding('utf8');
child.stdout.on('data', function(data) {
console.log('stdout: ' + data);
data=data.toString();
scriptOutput+=data;
});
child.stderr.setEncoding('utf8');
child.stderr.on('data', function(data) {
console.log('stderr: ' + data);
data=data.toString();
scriptOutput+=data;
});
child.on('close', function(code) {
console.log('closing code: ' + code);
console.log('Full output of script: ',scriptOutput);
});
这是我得到的输出:
Starting 'wp plugin update' on the tests-cli container.
我尝试了很多其他类似的组合,但遗憾的是它们都不适合我。
在谷歌上找不到任何线索,所以希望这里有人能够提供帮助。我认为根本原因实际上并没有与这个包特别相关,但我实际上并没有遇到使用“--”作为一般参数的问题,所以我认为它与这种组合以及对双引号的要求有关.
例如:
const child = spawn('npx', [
"--version"
], {shell: true});
这样就可以了。
【问题讨论】:
-
还有什么建议吗?
标签: node.js child-process spawn npx