在node.js中,我想找到一种获取Unix终端命令输出的方法.有没有办法做到这一点?
function getCommandOutput(commandString){
// now how can I implement this function?
// getCommandOutput("ls") should print the terminal output of the shell command "ls"
}
Run Code Online (Sandbox Code Playgroud) 我想从gulp运行一个shell命令,使用gulp-shell.我看到以下习惯用于gulpfile.
这是从gulp任务运行命令的惯用方法吗?
var cmd = 'ls';
gulp.src('', {read: false})
.pipe(shell(cmd, {quiet: true}))
.on('error', function (err) {
gutil.log(err);
});
Run Code Online (Sandbox Code Playgroud) 我有一些自定义测试脚本,我可以使用npm run test命令运行,它执行一些Node脚本来启动e2e/unit测试.但在此之前,我必须npm run dev在其他终端窗口启动webpack dev服务器(它也是一些自定义Node脚本,细节无关紧要).所以,我想省略npm run dev手动执行并将其移动到自定义npm run test脚本,即我想在Node脚本中以编程方式执行webpack dev服务器.如何npm run dev使用Node脚本以编程方式执行然后停止它?提前致谢!
"dev": "node node_modules/webpack-dev-server/bin/webpack-dev-server.js --host 0.0.0.0 --history-api-fallback --debug --inline --progress --config config/config.js"
Run Code Online (Sandbox Code Playgroud) 我需要从中生成一个子进程node.js,同时使用ulimit它来使用它来保存很多内存.
按照文档,让基本的spawn工作并不难:child = spawn("coffee", ["app.coffee"]).
然而,做我在下面做的只是让产生的声音无声无息.
child = spawn("ulimit", ["-m 65536;", "coffee app.coffee"])
Run Code Online (Sandbox Code Playgroud)
如果我会跑ulimit -m 65536; coffee app.coffee- 它的作用是有意的.
我在这做错了什么?
我有一个用 TypeScript 编写的项目,我使用任务运行程序来构建(无论是:Gulp、Jake 等)。我使用的 TypeScript 编译器是我从NPM安装的:
npm install typescript
Run Code Online (Sandbox Code Playgroud)
重要提示:正如您所看到的,没有全局-g参数,这是故意的。因为我需要使用经过一些修改的特定版本的编译器。
tsc以编程方式调用所以我想从配置任务管理器的 Javascript 文件调用编译器:
var tsc = require("typescript");
function compile() {
tsc.compile(...); // I would like to do something like this
}
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗?我已经尝试过了,但到目前为止还没有得到太多运气。
我使用child_process.execrun npm init,我可以让它创建package.json,但是创建后,我的stdin似乎仍然打开,我想知道子进程何时完成,所以我也许关闭了stdin,但是我不知道它何时完成。
这是我的代码:
var child = exec('npm init', function (err, stdout, stderr) {
console.log('over');
});
child.stdout.on('data', function(data) {
process.stdout.write(data);
//process.stdin.resume();
});
child.stdout.on('end', function() {
console.log('end out');
});
child.stdout.on('close', function() {
console.log('close out');
});
child.on('exit', function() {
console.log('exit');
});
child.on('close', function() {
console.log('close');
});
child.on('disconnect', function() {
console.log('disconnect');
});
// read stdin and send to child process
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if(chunk !== null) {
child.stdin.write(chunk);
}
});
Run Code Online (Sandbox Code Playgroud)
完成创建package.json后,没有任何事件触发,那么如何在完成后将其关闭?
我需要在 NodeJS 应用程序中编写如下终端命令来复制 S3 文件:
aws s3 cp s3://path-to-s3-fle local-file
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Node/JavaScript 代码中做到这一点?有任何模块/依赖项可以让您轻松实现这一目标吗?
javascript command-line-interface amazon-ec2 amazon-web-services node.js
我想以编程方式找出 npm 安装全局模块的文件夹。这个问题很相似,但答案对全局安装的模块不起作用:如何以编程方式获取 npm 安装模块的详细信息?
我需要一种永久设置环境变量的方法。我现在可以只在 Windows 中使用它,但理想情况下我想要一个与操作系统无关的解决方案。不过,据我所知,Node 只会为当前进程/子进程设置 var。我想要的甚至可能吗?
我正在尝试使用Node.js进行脚本编写。
我有一个脚本,在其中检查的存在./node_modules/some-package。如果不存在,some-package则进行安装。
但是,这似乎有点骇人听闻。
有没有更好的方法来检查脚本中是否安装了特定软件包?
const fs = require('fs');
let installed;
try {
fs.accessSync('./node_modules/.bin/some-package');
installed = true;
} catch (err) {
installed = false;
}
Run Code Online (Sandbox Code Playgroud) node.js ×9
javascript ×5
npm ×2
amazon-ec2 ×1
gulp ×1
process ×1
requirejs ×1
shell ×1
spawn ×1
typescript ×1