【发布时间】:2015-04-21 10:19:04
【问题描述】:
我有一个名为 sassy.js 的脚本
var spawn = require('child_process').spawn,
rubySass = spawn('sass', ['--watch scss:.tmp/css', '--sourcemap=auto', '--style=expanded', '--unix-newlines']);
我尝试使用 node sassy.js 运行
$ node sassy.js
events.js:85
throw er; // Unhandled 'error' event
^
Error: spawn sass ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
at child_process.js:1144:20
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
at node.js:814:3
这很奇怪,因为这段代码有效:
var exec = require('child_process').exec,
rubySass = exec('sass --watch scss:.tmp/css --sourcemap=auto --style=expanded --unix-newlines');
我选择 spawn 因为最后我想返回标准输出,我可以通过 Npm 运行脚本重定向到名为 clean-css 的节点包
"scripts": {
"build-sass:clean": "node sassy.js |
}
与:npm run build-sass:clean
已编辑
在Lovell Fuller 的帮助下,我更新了 sassy.js rubySass = spawn('c:/Ruby21-x64/bin/sass', ['--watch scss:.tmp/css', '--sourcemap=auto', '--style=expanded', '--unix-newlines'])
但node sassy.js 仍然会失败
events.js:85
throw er; // Unhandled 'error' event
^
Error: spawn c:/Ruby21-x64/bin/sass ENOENT
at exports._errnoException (util.js:746:11)
at Process.ChildProcess._handle.onexit (child_process.js:1053:32)
at child_process.js:1144:20
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
at node.js:814:3
我已尝试使用 c:/Ruby21-x64/bin/sass.bat,但尽管没有错误,但也没有输出:-/
【问题讨论】:
-
包含
.bat后缀是正确的做法。
标签: node.js sass npm exec spawn