Node.js升级报错:Node Sass could not find a binding for your current

javascript/jquery

浏览数:4

2020-5-23

AD:资源代下载服务

问题:

把 node 从 6.x 升级到 8.x 后,旧项目编译 scss 文件时报错:

Module build failed: Error: Missing binding D:\web\my-project\node_modules\node-sass\vendor\win32-x64-57\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass --force` to build the binding for your current environment.
    at module.exports (D:\web\my-project\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> (D:\web\my-project\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (D:\web\my-project\node_modules\sass-loader\lib\loader.js:3:14)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)

原因:

升级了node版本,sass包和现在node版本不一致,

解决方法:

重新构建 node-sass,命令如下:

npm rebuild node-sass --force

如果执行完成后不报错,就可以了。

也有可能会报 gyp Error 错误:

gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
....
gyp ERR! node -v v8.11.1 
gyp ERR! node-gyp -v v3.6.2

就需要先卸载 node-sass,然后重新安装。

npm uninstall node-sass
npm install node-sass

作者:KASON