gpt4 book ai didi

node.js - 尝试从 Node 生成 ruby​​ sass

转载 作者:太空宇宙 更新时间:2023-11-04 00:56:40 24 4
gpt4 key购买 nike

我有一个名为 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,因为最后我想返回stdout,我可以通过Npm运行脚本将其重定向到名为clean-css的 Node 包

"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仍然是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,但尽管没有错误,但也没有输出:-/

最佳答案

exec 使用 shell 运行命令,并且能够定位 sass 并为其添加完整路径前缀。

spawn 不会通过 shell 运行命令,因此您需要提供完整路径,例如/usr/bin/sass

如果您不确定完整路径需要是什么,which sass 命令应该提供该路径。

关于node.js - 尝试从 Node 生成 ruby​​ sass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29471126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com