【问题标题】:Node-sass is not recognized by command line命令行无法识别 Node-sass
【发布时间】: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 运行它
  • 谢谢,现在可以使用了

标签: node.js npm command-line-tool 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 scriptsnpm-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+

    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
    

    【讨论】:

      【解决方案5】:

      npm 命令检查“node_package”文件夹并尝试在那里运行。你可以试试

      npx run scss 
      

      安装 scss 然后运行它,即使之前没有安装。

      【讨论】:

        【解决方案6】:

        只需在终端中运行:

        npm install -g sass
        

        【讨论】:

        • 详细解释
        【解决方案7】:

        你可以简单地运行这段代码

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

        希望工作

        【讨论】:

          【解决方案8】:

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

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

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

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

          【讨论】: