命令行无法识别 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 -vnpm -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的主要内容,如果未能解决你的问题,请参考以下文章

Bash 脚本无法识别命令行参数? [复制]

无法识别来自命令行的 cppcheck

webpack 无法识别命令行选项

安装cnpm vue 命令行 无法识别

安装cnpm vue 命令行 无法识别

brew install gcc 后 OS X Yosemite gcc 无法识别命令行选项“mdll”