命令行无法识别 Node-sass
Posted
技术标签:
【中文标题】命令行无法识别 Node-sass【英文标题】:Node-sass is not recognized by command line 【发布时间】:2017-07-20 00:09:35 【问题描述】:我正在尝试设置 node-sass,遵循instructions on CSS-Tricks。 Node 和 npm 安装正确,并且 node-sass 安装也正常工作。但是,当我运行 node-sass --output-style compressed -o dist/css src/scss
时,我收到一条错误消息,指出
'node-sass' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
我在 Google 上进行了相当多的搜索并搜索了 Stack Overflow directly。我的问题不是关于“节点”不被识别为命令。我知道node正在工作,因为我可以运行node -v
和npm -v
,并且在运行npm install --save-dev node-sass
后成功安装了node-sass(node_modules中有一个文件夹)并且命令行中没有出现错误。
其他信息:我正在运行 Windows 10,并且在尝试使用 node-sass 之前刚刚完成了 node 和 npm 的全新安装。
编辑:感谢@Bhavik 的建议,我使用 -g 卸载并重新安装,现在可以正常工作了
【问题讨论】:
全局安装需要npm install -g node-sass
。
所以如果不全局安装就无法从命令行运行它?
它应该在您的PATH
变量中可用。其他方式可以在package.json
你可以有scripts
在那里你可以创建"scripts": "node-sass": "node-sass --output-style compressed -o dist/css src/scss"
然后使用npm run node-sass
运行它
谢谢,现在可以使用了
【参考方案1】:
你需要全局安装
npm install -g node-sass
或者添加到package.json
"devDependencies":
"node-sass": "4.5.0"
,
"scripts" :
"node-sass": "node-sass --output-style compressed -o dist/css src/scss"
然后做
1. npm i
,在这种情况下类似于npm install --save-dev node-sass
2.npm run node-sass
参考:npm scripts,npm-run-scripts
【讨论】:
当我直接从命令行运行node-sass --output-style compressed -o dist/css src/scss
时,它可以工作,但如果我将它作为脚本运行则不行。这是全球安装的结果吗?如果我想在脚本中使用 node-sass,是否需要本地安装?
不知道为什么会这样,npm-run-script 适用于全局和本地安装的包。 除了 shell 预先存在的 PATH,npm run 将 node_modules/.bin 添加到提供给脚本的 PATH 中。来自npm-run-scripts
纱线:yarn global add node-sass
【参考方案2】:
下面解决问题
yarn global add node-sass-chokidar
【讨论】:
如果存在node-sass
,为什么要node-sass-chokidar
?
@Gabi Wissotzky 使用上面的命令我得到一个错误错误 /home/humayun/.config/yarn/global/node_modules/node-sass: 命令失败【参考方案3】:
这是一个简单的问题不用太担心。只需转到 package.json 文件并添加此代码
"devDependencies":
"node-sass": "4.9.2"
,
"scripts" :
"node-sass": "node-sass --output-style compressed -o dist/css/ scss --recursive"
然后保存文件。
然后运行这个命令,
npm run node-sass
就是这样
【讨论】:
【参考方案4】:node-sass v4.13+
-
在本地项目中安装 node-sass
cd <root path of your project>
yarn add -D node-sass
// or
npm install -D node-sass
-
将脚本添加到您的 package.json 中
"scripts" :
...
"compile:sass": "node-sass --recursive --watch <sass directory> --output <css directory>",
...
-
从命令行运行脚本
yarn compile:sass
// or
npm run compile:sass
【讨论】:
【参考方案5】:npm 命令检查“node_package”文件夹并尝试在那里运行。你可以试试
npx run scss
安装 scss 然后运行它,即使之前没有安装。
【讨论】:
【参考方案6】:只需在终端中运行:
npm install -g sass
【讨论】:
详细解释【参考方案7】:你可以简单地运行这段代码
-
npm install -g sass
sass --watch sass:css
希望工作
【讨论】:
【参考方案8】:首先,像其他人指出的那样运行npm install -g node-sass
。
现在,命令的目标 (sass.cmd
) 不在当前工作目录中。为了让它仍然能够运行,它的位置必须在您的 PATH(或路径)环境变量中。
对我来说,路径是:C:\Users\Guy\AppData\Roaming\npm
在重试之前,请确保重新启动您尝试运行它的任何终端/IDE。否则它将无法识别新的环境变量。
【讨论】:
以上是关于命令行无法识别 Node-sass的主要内容,如果未能解决你的问题,请参考以下文章