Node-sass未被命令行识别。

20
我正在尝试配置node-sass,按照CSS-Tricks上的说明进行操作。Node和npm已经正确安装,node-sass也已经安装成功了。但是当我运行node-sass --output-style compressed -o dist/css src/scss时,却收到以下错误信息:

'node-sass' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我已经搜索了很多并在Stack Overflow中直接查找了相关内容。我的问题不是“node”不能被识别成一个命令。我知道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 来全局安装它。 - Bhavik
那么我不能在命令行中运行它而不全局安装它吗? - Sam Woolerton
1
它应该在您的“PATH”变量中可用以供使用。另一种方法可以在“package.json”中,您可以使用“scripts”创建"scripts": { "node-sass": "node-sass --output-style compressed -o dist/css src/scss",然后使用 npm run node-sass 运行它。 - Bhavik
谢谢,现在它可以工作了。 - Sam Woolerton
7个回答

50

你需要在全局范围内安装它

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 scriptsnpm-run-scripts


当我直接从命令行运行 node-sass --output-style compressed -o dist/css src/scss 时,它可以正常工作,但如果我将其作为脚本运行,则无法正常工作。这是因为全局安装的结果吗?如果我想在脚本中使用 node-sass,它需要进行本地安装吗? - Sam Woolerton
2
不确定为什么会发生这种情况,npm-run-script 可以与全局和本地安装的包一起使用。此外,在 shell 的现有 PATH 之外,npm run 还将 node_modules/.bin 添加到提供给脚本的 PATH 中。来自 npm-run-scripts - Bhavik
Yarn:yarn global add node-sass - Oliver Ni

5

你只需运行以下代码:

  1. npm install -g sass
  2. sass --watch sass:css

希望可以正常工作。


1

npm 命令检查 "node_package" 文件夹并尝试在其中运行。您可以尝试

npx run scss 

安装 SCSS 并运行它,即使之前没有安装过。

0

首先,像其他人指出的那样运行npm install -g node-sass

现在,命令的目标(sass.cmd)不位于当前工作目录中。为了使其仍然能够运行,它的位置必须在您的PATH(或Path)环境变量中。

对我来说,路径是:C:\Users\Guy\AppData\Roaming\npm

确保在再次尝试之前重新启动任何终端/IDE。否则,它将无法识别新的环境变量。


0
以下代码解决了问题。
yarn global add node-sass-chokidar

1
为什么会有node-sass-chokidar,如果已经存在node-sass了呢? - naXa stands with Ukraine
@Gabi Wissotzky,通过上面的命令我收到了一个错误:/home/humayun/.config/yarn/global/node_modules/node-sass: Command failed - Humayun Naseer

0
这是一个简单的问题,不用太担心。只需打开 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

就这些了


0

node-sass v4.13+

  1. 在你的项目中本地安装 node-sass
cd <root path of your project>
yarn add -D node-sass
// or
npm install -D node-sass
  1. 在你的 package.json 文件中添加一个脚本
"scripts" : {
...
  "compile:sass": "node-sass --recursive --watch <sass directory> --output <css directory>",
...
}
  1. 从命令行运行脚本
yarn compile:sass
// or
npm run compile:sass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接