据我所知,它.bat是旧的16位命名约定,.cmd适用于32位Windows,即从NT开始.但我继续在任何地方看到.bat文件,并且它们似乎使用任一后缀完全相同.假设我的代码将永远不需要对新台币任何旧的运行,是否真的重要走哪条路我名字我的批处理文件,还是有一些疑难杂症,通过使用错误的后缀等着我?
我有这个简单的脚本:
var exec = require('child_process').exec;
exec('coffee -cw my_file.coffee', function(error, stdout, stderr) {
console.log(stdout);
});
Run Code Online (Sandbox Code Playgroud)
我只是执行一个命令来编译一个咖啡脚本文件.但是stdout永远不会在控制台中显示,因为命令永远不会结束(因为咖啡的-w选项).如果我直接从控制台执行命令,我得到这样的消息:
18:05:59 - compiled my_file.coffee
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否可以使用node.js exec显示这些消息?如果有,怎么样?!
谢谢
我试图用节点js将SVG转换为PNG.我的代码在这里:
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'image/png'});
var convert = child_proc.spawn("convert", ["svg:", "png:-"]),
values = (url.parse(req.url, true).query['values'] || ".5,.5")
.split(",")
.map(function(v){return parseFloat(v)});
convert.stdout.on('data', function (data) {
res.write(data);
});
convert.on('exit', function(code) {
res.end();
});
jsdom.env({features:{QuerySelector:true}, html:htmlStub, scripts:scripts, done:function(errors, window) {
var svgsrc = window.insertPie("#pie", w, h, values).innerHTML;
//jsdom's domToHTML will lowercase element names
svgsrc = svgsrc.replace(/radialgradient/g,'radialGradient');
convert.stdin.write(svgsrc);
convert.stdin.end();
}});
}).listen(8888);
Run Code Online (Sandbox Code Playgroud)
执行时我收到此错误(在MAC中)
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Run Code Online (Sandbox Code Playgroud)
我已经为nodejs指定了路径.但我不知道它失败的原因.对这个问题有什么看法吗?
我正在尝试使用Gulp.js构建一个jekyll站点.我已经读过这个问题我不应该使用插件.
我一直在调查使用子进程,但我一直收到错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:988:11)
at Process.ChildProcess._handle.onexit (child_process.js:779:34)
Run Code Online (Sandbox Code Playgroud)
这是我的gulp文件:
var gulp = require('gulp');
var spawn = require('child_process').spawn;
var gutil = require('gulp-util');
gulp.task('jekyll', function (){
spawn('jekyll', ['build'], {stdio: 'inherit'});
});
gulp.task('default', ['jekyll']);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我在Node 0.10.25,Win 7上.
编辑 我之前有一个围绕ENOENT错误的谷歌.检查了我的路径,Ruby就在那里,我可以从命令行运行jekyll.仍然没有快乐.
我有一个服务,我希望允许用户在安装时指定使用哪个持久性引擎,即基于文件,MongoDB或Redis,我正在寻找一些npm魔术,你只下载必要的模块(无,分别是mongodb或redis).
这可能吗?除了在package.json中定义依赖项和devDependencies之外,我找不到任何其他选项,这不适用于此.
另请注意,虽然mongodb和redis模块可能相对较小,但请考虑另一种情况,您可以选择使用Java进行RMI通信.
谢谢!
node.js ×4
batch-file ×1
cmd ×1
coffeescript ×1
gulp ×1
javascript ×1
jekyll ×1
npm ×1
svg ×1
windows ×1