• 原来的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}`;
        },
      },
    },
  },
Logo

快速构建 Web 应用程序

更多推荐