更新 NodeJS 后使用 node-sass 的问题

Posted

技术标签:

【中文标题】更新 NodeJS 后使用 node-sass 的问题【英文标题】:Issue using node-sass after updating NodeJS 【发布时间】:2016-12-03 19:01:08 【问题描述】:

更新我的 NodeJS 版本后,我在使用 node-sass 时遇到问题。

问题:

(node:472) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
C:\aglqng\src\main\webapp\node_modules\node-sass\lib\index.js:15
    throw new Error(errors.missingBinary());
    ^

Error: Missing binding C:\aglqng\src\main\webapp\node_modules\node-sass\vendor\win32-x64-48\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 6.x

Found bindings for the following environments:
  - Windows 64-bit with Node 0.12.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at Object.<anonymous> (C:\aglqng\src\main\webapp\node_modules\node-sass\lib\index.js:15:11)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.require (module.js:468:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\aglqng\src\main\webapp\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:541:32)

版本:

node-sass 3.8.0 (Wrapper) [javascript]
libsass 3.3.6 (Sass Compiler) [C/C++]
nodejs v6.3.1

平台: Windows 10 x64

我试过了,还是不行:

1)

node rebuild node-sass

2)

npm uninstall node-sass
npm i node-sass

【问题讨论】:

您是否按照错误消息中的说明进行操作? 查看编辑#1 中的命令不起作用。 【参考方案1】:

如果重建命令对您不起作用,请尝试删除“node_modules”目录并重新安装。

【讨论】:

我可以确认这对我也有用。无需卸载或升级node-sass(回复:tonymx227 的编辑和明显的第二次尝试)。 好吧,这对我没有帮助 这不是解决方案 解决方案的变体对我有用:我删除了node_modules,然后运行:npm rebuild &amp;&amp; npm install 可以只删除“node_modules/node-sass/”,而不是删除整个“node_modules”【参考方案2】:

这对我有用: 与 Visual Studio 2015 同步 Node.JS 安装版本

1) 找到您已有的 Node.js 安装并在命令行中使用。默认情况下,Node.js 0.12.7 安装到“C:\Program Files\nodejs”,仅供参考。

2) 将所有内容复制到剪贴板后,转到 Visual Studio 2015 中的工具 > 选项。 在此对话框中,转到“项目和解决方案”>“外部 Web 工具”以打开管理 VS 中使用的所有第 3 方工具的对话框。这就是 Node.js 所指向的地方。

3) 在 node.js 目录路径的顶部添加一个条目,以强制 Visual Studio 使用该版本。

感谢: https://ryanhayes.net/synchronize-node-js-install-version-with-visual-studio-2015/

【讨论】:

【参考方案3】:

我可以通过运行这个命令来解决这个问题:

npm install node-sass

【讨论】:

【参考方案4】:

我在更新到 VS 2017 时遇到了这个问题。VS 自带了自己的 Node 安装,它可能不是您系统上存在的最新版本。要覆盖它,请按照以下步骤操作:

    转到工具 -> 选项 -> 项目和解决方案 -> Web 包 管理 在“外部工具的位置”中添加一个指向 nodejs 安装位置,例如:“C:\Program Files\nodejs” 确保它高于其他条目。

我发现了一篇非常有用的文章 here,它告诉了我以上几点。

[注意:如果需要,请先更新系统上的 nodejs。在 Windows 上,这是通过全新安装新版本来完成的。]

【讨论】:

当所有其他选项都不适合我时,这很有效。【参考方案5】:

删除 node_modules 然后在项目根目录运行 npm install

【讨论】:

【参考方案6】:

你可以运行:

npm rebuild node-sass

【讨论】:

【参考方案7】:

我和你有同样的问题。我用npm rebuild node-sass的时候还是失败了,报错gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT HON env variable.

我搜索了错误信息,一些npm插件需要node-gyp才能安装。但是,node-gyp 有它自己的依赖项。node-gyp

在 Windows 上 使用 Microsoft 的 windows-build-tools 从提升的 PowerShell 或 CMD.exe(以管理员身份运行)使用 npm install --global --production windows-build-tools 安装所有必需的工具和配置。

npm install --global --production windows-build-tools

然后安装包

npm install --global node-gyp

就是这样,再次运行npm rebuild node-sass,就成功了!

【讨论】:

我在一台机器上进行了这个安装,但它有一个我没想到的问题。我们已经安装了 VS2017。无论如何,该软件包都会安装 VS 构建工具。通常这应该不是问题,除了一些搜索 VS 版本的构建工具现在认为构建工具文件夹是完整安装。对于大多数构建操作,这将起作用。但是我们有需要完整安装的构建。 (例如代码覆盖率)。也许最好在这些系统上手动安装 Python【参考方案8】:

我在windows上遇到了同样的问题,我通过以下方法解决了:

    以管理员身份打开终端

    运行npm rebuild node-sass

    运行npm ci

【讨论】:

【参考方案9】:

当代码库最初在 macOS Mojave 中编译并在 Windows 10 上运行时出现此错误。

只需使用以下命令来修复此错误:

npm rebuild node-sass

运行命令后,再次运行ng serve

【讨论】:

【参考方案10】:

某些版本的 node-sass 与某些版本的 Node.js 不兼容。在我将 Node 升级到版本 12 后,我必须使用以下命令将项目中的 node-sass 版本升级到 4.12:

npm install node-sass@4.12.0

此页面显示版本兼容性:

https://www.npmjs.com/package/node-sass

【讨论】:

【参考方案11】:

不是删除node-Modules,而是运行下面的帮助:

cd <Your project path>
node node_modules/node-sass/scripts/install.js

【讨论】:

谢谢 这是迄今为止最好的。【参考方案12】:

如果运行npm rebuild node-sass后问题仍然存在,请按照以下方式进行

    删除 node_modules 文件夹 运行“npm install”, npm 重建 node-sass, 为各自的环境运行命令。

【讨论】:

以上是关于更新 NodeJS 后使用 node-sass 的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 nodejs 中使用 node-sass 时找不到 libsass 绑定

NodeJS OSX错误构建node-sass

node-sass插件缺失vendor目录的问题

node-sass模块报错安装不上?试试这个方法,亲测有效

vue-cli 3中dart-sass替换node-sass

vue-cli 3中dart-sass替换node-sass