全局安装Sass后执行sass --watch提示找不到watch选项求助
解决Sass
--watch 选项找不到的问题 我之前也踩过一模一样的坑!明明全局装了Sass,普通编译命令能正常跑,但--watch就是报错说找不到选项,后来发现是你当前用的Sass版本/实现不对导致的。
先排查问题根源
先执行这两个命令,搞清楚你用的到底是什么Sass:
- 查看版本:
sass --version- 如果输出是类似
Sass 3.x.x (Sass Compiler),那说明你用的是已经停止维护的Ruby Sass,它的命令行参数和现在官方的Dart Sass不一致,而且早就不更新了。 - 如果输出是
node-sass x.x.x,那是基于LibSass的旧实现,同样已经被弃用,也不支持当前Dart Sass的部分参数。
- 如果输出是类似
- 查看命令路径:
which sass
看看这个命令指向的是不是npm全局安装的Dart Sass路径(Mac上一般是/usr/local/bin/sass,软链接到/usr/local/lib/node_modules/sass/bin/sass)。如果路径不对,说明系统里有多个Sass版本冲突了。
解决方案步骤
- 先卸载所有全局安装的旧版Sass:
npm uninstall -g sass npm uninstall -g node-sass # 如果之前通过gem装过ruby-sass也一起卸载 gem uninstall sass - 重新安装官方最新版的Dart Sass:
npm install -g sass - 验证安装结果:
再次执行sass --version,应该看到类似这样的输出:1.69.5 compiled with dart2js 3.2.3 - 现在再试watch命令:
正常情况下应该会输出类似sass --watch style.scss:style.cssSass is watching for changes. Press Ctrl-C to stop.的提示,修改scss文件后也会自动编译了。
万一还是不行?
如果执行上述步骤后还是报错,试试直接用Dart Sass的完整路径执行命令,比如:
/usr/local/lib/node_modules/sass/bin/sass --watch style.scss:style.css
如果这样能正常运行,说明你的系统PATH里的旧Sass路径优先级更高,需要调整PATH顺序,或者删除旧的Sass可执行文件。
内容的提问来源于stack exchange,提问作者Daniel da Rocha
相关产品推荐
相关产品推荐

