在 Vue.js 中使用 vue.config.js 修复 sass-loader 错误

Fix sass-loader error with vue.config.js in Vue.js

我正在尝试在我的 Vue.js 应用程序中使用外部 sass 文件 (About.sass),该应用程序是从 Vue CLI 3 生成的。但是我收到了关于 'Unknown word' 编译时。

经过大量研究,我的应用程序使用 'webpack-chain',我使用 'vue.config.js' 配置 sass-loader。

我的配置时间线:

  1. Vue CLI 3 - 默认预设
  2. 添加了<style src="../sass/About.sass" scoped></style>
  3. yarn 添加 sass-loader node-sass style-loader
  4. 已将加载器添加到 vue.config.js

vue.config.js

module.exports = {
    chainWebpack: config => {
      config.module
        .rule('sass')
        .test(/\.sass$/)
        .use('sass-loader')
          .loader('sass-loader')
          .loader('css-loader')
          .loader('style-loader')
        .end()
    }
}

我真的被阻止了,无法让它工作。我收到此错误:

 ERROR  Failed to compile with 1 errors                                                                        22:02:03

 error  in ./src/sass/About.sass?vue&type=style&index=0&id=c226fde6&scoped=true&lang=css&

Syntax Error: SyntaxError

(2:1) Unknown word

  1 |
> 2 | var content = require("!!../../node_modules/vue-style-loader/index.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/lib/loader.js??ref--9-oneOf-1-3!./About.sass?vue&type=style&index=0&id=c226fde6&scoped=true&lang=css&");
    | ^
  3 |
  4 | if(typeof content === 'string') content = [[module.id, content, '']];

有什么帮助或建议吗?提前致谢。

我好像忘记在标签 <style src="../sass/About.sass" scoped></style>

中指定类型 lang="sass"

Vue 足够智能来配置加载程序,因此甚至不需要 'vue.config.js'。