webpack提取sass的公共样式

发布于 2022-09-06 15:09:24 字数 1122 浏览 8 评论 0

webpack打包多页面,每一个页面都有一个单独的scss文件 然后这每一个单独的scss文件都需要引入一个公用样式文件scss
clipboard.png

webpack打包的出来的css文件都引入的公用base.scss样式文件都直接打包进来了。左边为index.css右边为pagea.css

clipboard.png

我的需求就是能够把多次引入的base.scss 单独打包成一个common.css文件

这是生产模式下的sass处理plugin

    new HappyPack({
        id: 'css',
        verbose: true,
        threadPool: happyThreadPool,
        loaders: [
            {loader: 'css-loader', options: {importLoaders: 1, minimize: true}},
            {loader: 'postcss-loader'},
            {loader:'sass-loader'}
        ]

    }),


    /*加载把css文件单独分离出来的插件*/
    new ExtractTextPlugin({
        filename: (getPath) => {
            return getPath('css/[name]-[contenthash:6].css').replace('css/js', 'css');
            /* [name] 根据html名字获取的css名字  contenthash:6加上hash:6值*/
        },
        allChunks: true
    }),

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

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

发布评论

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

评论(1

2022-09-13 15:09:24

建议把公共样式提取到单独的文件中,在js引入,通过splitChunks或者异步引入,使其单独生成文件
scss中引入公共的mixins,变量等

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