更新 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 && 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 绑定