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

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日