如何将文件名组合在一起,用作命令行工具的参数
How to combine filenames in gulp to use as arguments for a command line tool?
我该如何创建一个Gulpfile.js,它能够(f.I)将某个目录中所有cpp文件的路径传递给g++?
生成的shell命令应该如下所示:
g++ -o myprog.exe file1.cpp file2.cpp
我正在考虑一个可能看起来像这样的一次性解决方案:
gulp.task('compile-cpps',function (){
gulp.src("src/*.cpp")
.pipe(listify-filenames())
.pipe(shell_cmd("g++ -o myprog.exe <$filenames$>"))
})
如果您实际上没有使用gullow流,只需绕过它们:
var glob = require('glob'),
exec = require('child_process').exec;
gulp task('compile-cpps', function(gulpCallback) {
glob('src/*.cpp', function(files) {
files = files.map(function(f) { return '"'+f+'"'; }).join(' ');
exec('g++ -o my-prog.exe '+files, function(error, stdout, stderr) {
gulpCallback(error);
});
});
});
这会列出所有与glob
匹配的文件,将每个文件名用引号括起来(以留出空格),然后为g++
生成一个附加文件名的新进程。完成后,将处理gulp的异步回调。
您可以记录或输出进程中的stdout和stderr。如果您希望以流方式处理流程,请将exec
替换为spawn
,并附加到事件:
var glob = require('glob'),
spawn = require('child_process').spawn;
gulp task('compile-cpps', function(gulpCallback) {
glob('src/*.cpp', function(files) {
spawn('g++', ['-o', 'my-prog.exe'].concat(files))
.on('close', function(code) {
gulpCallback(code);
});
});
});
相关文章:
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 命令行中的Uglify js;不要弄乱变量名
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 类似HTML命令行的文本框
- 节点JS express和控制台输出到命令行与浏览器
- 如何将.json文件作为参数导入.js文件并使用命令行启动它
- 最小化CSS/JS文件,并使用命令行创建一个文件
- 自动关闭或覆盖通过命令行打开的浏览器选项卡
- 如何在节点模块中从命令行运行函数
- 如何在命令行中运行/调试javascript
- node.js命令行工具
- Hapi.js文件上传我如何获取文件,这样我就可以在上面使用imageMagick命令行工具
- 使用Chrome中的JavaScript节点命令行工具
- 使用Meteor JS编写命令行工具
- 节点:ShellJS无法使用命令行工具
- 如何使用任何命令行工具或脚本将Word文档内容复制到Google Docs
- 如何将文件名组合在一起,用作命令行工具的参数
- Node: Windows中的命令行工具
- 将字符串从网页传递到php,然后传递到Obj-C命令行工具的正确方法
- 是否有一种方法可以使用命令行工具来查看网页的JavaScript解释源