Vue CLI 3 sass-资源加载器 - Options.loaders 未定义

Vue CLI 3 sass-resources-loader - Options.loaders undefined

几周前,我能够使用 3.0 版 CLI 成功配置一个新的 Vue 项目以使用 sass-resource-loader,使用此处发布的信息:

然而,在今天更新完所有内容后,我在 运行 npm run serve:

时遇到以下错误

TypeError: Cannot read property 'scss' of undefined

似乎传递给 .tap(options) 的唯一选项是:

{ compilerOptions: { preserveWhitespace: false } }

我目前对 chainWebpack 的了解还不足以有效地进行调试,但我正在努力。如果有人对导致此错误的更改有任何见解,我们将不胜感激。

我的vue.config.js:

const path = require('path')

module.exports = {
  chainWebpack: (config) => {
    config
      .module
      .rule('vue')
      .use('vue-loader')
      .tap((options) => {
        console.log(options)
        options.loaders.scss = options.loaders.scss.concat({
          loader: 'sass-resources-loader',
          options: {
            resources: [
              path.resolve('./src/scss/_variables.scss'),
              path.resolve('./src/scss/_mixins.scss')
            ]
          },
        })
        return options
      })
    config
      .module
      .rule('scss')
      .use('sass-resources-loader')
      .loader('sass-resources-loader')
      .options({
        resources: [
          path.resolve('./src/scss/_variables.scss'),
          path.resolve('./src/scss/_mixins.scss')
        ]
      })
  }
}

您使用vue-cli@3.x,这可能意味着您的项目使用vue-loader@15.x Since version 15vue-loader 不需要加载程序的额外配置。 您只能配置主要的 webpack 加载器。

const path = require('path')

module.exports = {
  chainWebpack: (config) => {
    config
      .module
      .rule('scss')
      .use('sass-resources-loader')
      .loader('sass-resources-loader')
      .options({
        resources: [
          path.resolve('./src/scss/_variables.scss'),
          path.resolve('./src/scss/_mixins.scss')
        ]
      })
  }
}

You can also inspect webpack configs using the vue inspect or ./node_modules/.bin/vue-cli-service inspect commands.