试图从节点产生rubysass
我有一个名为sassy.js的脚本
var spawn = require('child_process').spawn, rubySass = spawn('sass', ['--watch scss:.tmp/css', '--sourcemap=auto', '--style=expanded', '--unix-newlines']);
我尝试使用节点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');
我select产卵beacuse最后我想返回标准输出,我可以redirect到节点包称为干净的CSS由Npm运行脚本
"scripts": { "build-sass:clean": "node sassy.js | }
与: npm run build-sass:clean
EDITED
在Lovell Fuller的帮助下,我更新了sassy.js rubySass = spawn('c:/Ruby21-x64/bin/sass', ['--watch scss:.tmp/css', '--sourcemap=auto', '--style=expanded', '--unix-newlines'])
但node sassy.js
仍然是yelds
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
但是尽pipe没有错误,也没有输出: – /
exec
使用shell来运行命令,并且能够使用其完整path定位sass
前缀。
spawn
不会通过shell运行命令,所以你需要提供完整的path,例如/usr/bin/sass
。
如果你不确定完整的path是什么which sass
命令应该提供这个。
我不知道这是否有意义,但是你忘记了结束语吗?
"scripts": { "build-sass:clean": (--->)"node sassy.js | } "scripts": { "build-sass:clean": "node sassy.js" | }