同一插件在vue-cli2中和vue-cli3x中表现结果不一样,该如何解决?

发布于 2022-09-12 00:15:47 字数 1609 浏览 22 评论 0

问题描述

插件是sass-resources-loader,这个插件在vue-cli2中和vue-cli3x中表现结果不一样,该如何解决?

具体就是vue-cli2中全局导入的样式的scss文件不会在head标签中重复引入,而vue-clil3中全局导入的样式的scss文件会在head标签中重复引入。

vue-cli2
vue-cli2.png

vue-cli3
重复scss.png

相关代码

vue-cli2中的配置

  • bulid/utils.js的exports.cssLoaders 的返回值处
...
scss: generateLoaders('sass').concat({
      loader:'sass-resources-loader',  
          options:{  
          resources:[
            path.resolve(__dirname,'../src/assets/sw.scss'),
            path.resolve(__dirname,'../src/assets/sw2.scss'),
            path.resolve(__dirname,'../src/assets/base.scss')
          ]
          }
    }),
...

vue-cli3的配置信息

  • vue.config.js
...
chainWebpack: config => {
    const oneOfsMap = config.module.rule('scss').oneOfs.store
    oneOfsMap.forEach(item => {
      item
        .use('sass-resources-loader')
        .loader('sass-resources-loader')
        .options({
          // Provide path to the file with resources
          //resources: './path/to/resources.scss',
 
          // Or array of paths
          resources: [
            path.resolve(__dirname,'./src/assets/css/variable.scss'),
            path.resolve(__dirname,'./src/assets/css/mixin.scss'),
            path.resolve(__dirname,'./src/assets/css/base.scss')
            ]
        })
        .end()
    })
  }
...

如何在vue-cli3中得到vue-cli2中表现结果,就是如何做到不重复引入?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

德意的啸 2022-09-19 00:15:47

用mini-css-extract-plugin这个插件来实现webpack4.x去重
你可以参考这个网址https://www.npmjs.com/package/mini-css-extract-plugin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文