一、问题
当前笔记本环境版本:node-v16.15.1;npm-8.11.0,在面对五年前vue项目的依赖sass-loader@8.0.2,node-sass@4.14.1的情况下,怎么参考大神们的安装教程,始终存在Error,经过坚持不懈的努力,终于解决这一问题。
二、插曲一:运行nodejs版本切换
市场上有很多node版本不适配问题,下载多个版本,存放环境变量,顺序放置最上面,然后重启开发工具,node -v查看当前环境版本,https://registry.npmmirror.com/binary.html?path=node/
三、插曲二:运行nodejs和node-sass对应的版本,太多内容懒得看。
node版本对应下载地址:https://nodejs.org/dist/v21.1.0/
四、npm install 也不生效
淘宝镜像地址给的也不对。npm i node-sass --sass_binary_site=https:
//npm.taobao.org/mirrors/node-sass/ 先去除组织依赖安装的包,等其他包都下载完成后,再还原回去。
npm install 也不生效,改成npm install --legacy-peer-deps才行;
五、单独弄得sass-loader@8.0.2和node-sass@4.14.1依赖包,包括clone-deep、shallow-clone、true-case-path。呵呵
六、启动的时候竟然报错误
Syntax Error: ValidationError: Invalid options object. Sass Loader has been initialized using an options object that does not match the API schema.,网上都说是环境不对,真头疼,找一找,
查看版本号node -p "[process.platform, process.arch, process.versions.modules].join('-')";
下载对应的binding.node文件, Releases · sass/node-sass · GitHub
看不到window的话,可以点击展开就行了。我用的node没有降级,还是node-v16.15.1版本,node-sass版本v9.0.0
找到依赖包替换成这个文件
注意:在 sass-loader v8 中,这个选项名是 "prependData",将vue.config.js文件中换成prependData ,最后完美。
六、最后
成功