红莲R-LotusX 2023-12-11 15:02 采纳率: 20%
浏览 58
已结题

uniapp中全局引入的scss样式,会在每个使用的文件中都添加重复的代码,导致打包出来文件很大

uniapp中全局引入的scss样式,编译后会在每个使用的文件中都添加重复的代码,导致打包出来文件很大,打包速度很慢,该如何解决

  • 写回答

16条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-11 15:02
    关注
    获得0.75元问题酬金

    引自强大而免费的微信小程序:皆我百晓生

    问题描述:

    在uni-app中全局引入的scss样式,编译后会在每个使用的文件中都添加重复的代码,导致打包出来文件很大,打包速度很慢。

    解决方法:

    1. 使用style-resources-loader插件

    • 安装style-resources-loader插件
    npm install style-resources-loader --save-dev
    
    • 在vue.config.js中配置styleResources属性
    module.exports = {
        chainWebpack: config => {
            config.plugin('style-resources')
                .use(require('style-resources-loader'))
                .options({
                    patterns: [
                        // 添加全局引入的scss样式文件路径
                        path.resolve(__dirname, './src/styles/variables.scss')
                    ]
                })
        }
    }
    

    这样配置后,scss样式只会编译一次,然后在每个文件中只会添加一个全局样式,减少了代码的冗余。

    2. 使用vue-cli-plugin-style-resources-loader插件

    • 安装vue-cli-plugin-style-resources-loader插件
    npm install vue-cli-plugin-style-resources-loader --save-dev
    
    • 在vue.config.js中配置pluginOptions属性
    module.exports = {
        pluginOptions: {
            'style-resources-loader': {
                preProcessor: 'scss',
                patterns: [
                    // 添加全局引入的scss样式文件路径
                    path.resolve(__dirname, './src/styles/variables.scss')
                ]
            }
        }
    }
    

    这样配置后,scss样式只会编译一次,然后在每个文件中只会添加一个全局样式,减少了代码的冗余。

    3. 使用Vue CLI的@import语法

    @import '@/styles/variables.scss';
    
    // 其他样式代码
    

    这样配置后,scss样式只会编译一次,然后通过@import语法在每个文件中引入全局样式,减少了代码的冗余。

    4. 使用postcss-import插件

    • 在postcss.config.js中配置postcss-import插件
    module.exports = {
        plugins: {
            'postcss-import': {
                path: ['./src/styles']
            }
        }
    }
    

    这样配置后,postcss-import插件会将被引入的scss样式文件合并,并在每个文件中只添加一次全局样式,减少了代码的冗余。

    参考链接:

    1. vue-cli-plugin-style-resources-loader官方文档
    2. postcss-import官方文档
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 一、执行完中断程序后如何继续运行,二、中断结束后如何跳过中断触发前的点位(LOW点不要继续运行,可以运行UP点)(关键词-程序运行)
  • ¥15 if为什么跳过if 直接执行else 中文
  • ¥200 解决登录微信老版本限制封号问题
  • ¥15 mysql中时间处理问题
  • ¥20 讲解此音频放大电路原理及关键部分
  • ¥15 rtsp 转 m3u8 执行后卡在Decoding VUI
  • ¥20 微信小程序转发链接问题,已禁止转发仍能转发的场景
  • ¥15 关于#硬件架构#的问题:根据开片的IC来判断是哪一款
  • ¥15 matlab simulink
  • ¥15 rtos搭建sip协议开发包