如何在`netlify` 构建过程修复 node-sass 安装错误?

211 阅读1分钟

在本教程中,学习如何在netlify 构建过程中修复 node-sass 的安装错误。

我在netlify生产中部署node项目时遇到了这个错误

4:54:23 PM: npm WARN rm not removing /opt/build/repo/node_modules/.bin/gulp as it wasn't installed by /opt/build/repo/node_modules/gulp-cli
4:54:23 PM: > node-sass@6.0.1 install /opt/build/repo/node_modules/node-sass
4:54:23 PM: > node scripts/install.js
4:54:23 PM: Unable to save binary /opt/build/repo/node_modules/node-sass/vendor/linux-x64-57 : { Error: ENOENT: no such file or directory, mkdir '/opt/build/repo/node_modules/node-sass/vendor/linux-x64-57'
4:54:23 PM:     at Object.fs.mkdirSync (fs.js:885:18)
4:54:23 PM:     at checkAndDownloadBinary (/opt/build/repo/node_modules/node-sass/scripts/install.js:113:8)
4:54:23 PM:     at Object. (/opt/build/repo/node_modules/node-sass/scripts/install.js:156:1)
4:54:23 PM:     at Module._compile (module.js:653:30)
4:54:23 PM:     at Object.Module._extensions..js (module.js:664:10)
4:54:23 PM:     at Module.load (module.js:566:32)
4:54:23 PM:     at tryModuleLoad (module.js:506:12)
4:54:23 PM:     at Function.Module._load (module.js:498:3)
4:54:23 PM:     at Function.Module.runMain (module.js:694:10)
4:54:23 PM:     at startup (bootstrap_node.js:204:16)
4:54:23 PM:   errno: -2,
4:54:23 PM:   code: 'ENOENT',
4:54:23 PM:   syscall: 'mkdir',
4:54:23 PM:   path: '/opt/build/repo/node_modules/node-sass/vendor/linux-x64-57' }

node-sass 是一个用于 sass 编译的节点包,需要构建每个环境所需的本地工具和二进制文件。

这将会被废弃,在未来不会被使用。

node-sass 库的替代品是什么?

sass-loader是一个用于加载和编译sass/scss文件为CSS的软件包。

首先,从你的项目中卸载node-sass

npm uninstall node-sass

sasssass-loader 安装到你的项目中

npm install sass --save-dev
npm install node-sass --save-dev

如果你想在netlify中仍然继续使用node-sass。

你必须在node版本中使用正确的node-sass版本

总结

你学会了如何解决netlify构建中的node-sass错误。