在本教程中,学习如何在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
将sass 和sass-loader 安装到你的项目中
npm install sass --save-dev
npm install node-sass --save-dev
如果你想在netlify中仍然继续使用node-sass。
你必须在node版本中使用正确的node-sass版本
总结
你学会了如何解决netlify构建中的node-sass错误。