Node升级后vue项目node-sass报错问题及解决

Node升级后vue项目node-sass报错

node升级命令

npm install -g n
sudo n 16.14.0

升级后以前的vue 项目 node-sass 报错

解决方案

1.卸载原有的node-sass 和 sass-loader

npm uninstall node-sass sass-loader

2.升级项目所有安装的依赖

npm update

3.安装sass-loader与sass

npm install -D sass-loader@^10 sass

4.重新打包

npm run dev (如图2)

5.Syntax Error: SassError: expected selector.

报错信息表示 /deep/ 写法的错,修改为 (如图3)

若依vue前端node升级记录

原来的node版本是

node: 14.9.0
node-sass: 4.14.1
sass-loader: 8.0.2

升级后node

node: 15.8.0
node-sass: 6.0.1
sass-loader: 10.3.1

升级后遇到的问题

// 在安装完合适的sass-loader以后,运行项目报错,原来项目里全局引入scss文件的配置,sass-loader的版本对于这个在文件之前追加scss代码的选项名均有不同
sass-loader v8-,这个选项名是 “data”
sass-loader v8 中,这个选项名是 “prependData”
sass-loader v10+,这个选项名是 “additionalData”  css: {
    loaderOptions: {
      sass: {
        additionalData: `@import '@/assets/styles/variables.scss';`,
      },
    },
  },
// 结果出现了 Syntax Error: SassError: This file is already being loaded. 这个错误。原因是将这个scss文件重复引入了, 修改如下:

  css: {
    loaderOptions: {
      sass: {
        // additionalData: `@import '@/assets/styles/variables.scss';`,
        additionalData: (content, loaderContext) => {
          const { resourcePath } = loaderContext;
          if (resourcePath.endsWith("variables.scss")) return content;
          return `@import "@/assets/styles/variables.scss"; 
          ${content}`;
        },
      },
    },
  },

总结

作者:﹏゛Aeljinh陌琳原文地址:https://blog.csdn.net/qq_37541486/article/details/124803485

%s 个评论

要回复文章请先登录注册