首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ExtractTextPlugin和CommonsChunkPlugin提取常用样式

使用ExtractTextPlugin和CommonsChunkPlugin是一种常见的前端开发技术,用于提取常用样式。

ExtractTextPlugin是一个webpack插件,用于将CSS样式从JavaScript文件中提取出来,生成独立的CSS文件。这样可以将样式和逻辑分离,提高页面加载速度,并且方便样式的复用和维护。

CommonsChunkPlugin也是一个webpack插件,用于提取公共模块。在多个入口文件中,可能会存在一些公共的模块,如第三方库或公共的业务逻辑。通过使用CommonsChunkPlugin,可以将这些公共模块提取出来,生成一个单独的文件,减少重复加载和提高缓存效果。

使用ExtractTextPlugin和CommonsChunkPlugin提取常用样式的步骤如下:

  1. 在webpack配置文件中引入ExtractTextPlugin和CommonsChunkPlugin:
代码语言:javascript
复制
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');
  1. 配置ExtractTextPlugin,将样式提取到独立的CSS文件中:
代码语言:javascript
复制
module: {
  rules: [
    {
      test: /\.css$/,
      use: ExtractTextPlugin.extract({
        fallback: 'style-loader',
        use: 'css-loader'
      })
    }
  ]
},
plugins: [
  new ExtractTextPlugin('styles.css')
]
  1. 配置CommonsChunkPlugin,提取公共模块:
代码语言:javascript
复制
entry: {
  app: './src/app.js',
  vendor: ['react', 'react-dom']
},
plugins: [
  new CommonsChunkPlugin({
    name: 'vendor',
    filename: 'vendor.js'
  })
]

在上述配置中,通过test属性指定要提取的样式文件的匹配规则,使用ExtractTextPlugin.extract方法将样式提取到独立的CSS文件中,并通过new ExtractTextPlugin('styles.css')指定生成的CSS文件名。同时,通过entry属性指定入口文件,vendor属性指定公共模块,通过new CommonsChunkPlugin配置提取公共模块的名称和生成的文件名。

使用ExtractTextPlugin和CommonsChunkPlugin提取常用样式的优势是:

  1. 提高页面加载速度:将样式从JavaScript文件中提取出来,可以减少JavaScript文件的大小,加快页面加载速度。
  2. 方便样式的复用和维护:将样式提取到独立的CSS文件中,可以方便地复用和维护样式,提高代码的可读性和可维护性。
  3. 减少重复加载:通过提取公共模块,可以将公共的模块提取出来,生成一个单独的文件,减少重复加载,提高缓存效果。

使用ExtractTextPlugin和CommonsChunkPlugin提取常用样式的应用场景包括但不限于:

  1. 多页面应用:在多个页面中使用相同的样式文件,可以将样式提取到独立的CSS文件中,减少重复加载。
  2. 第三方库:在使用第三方库时,可以将第三方库的样式提取到独立的CSS文件中,方便管理和维护。
  3. 公共组件:在多个组件中使用相同的样式,可以将样式提取到独立的CSS文件中,方便复用和维护。

腾讯云提供了一系列与前端开发相关的产品和服务,包括云服务器、云存储、云函数等。具体推荐的产品和产品介绍链接地址可以参考腾讯云官方文档或咨询腾讯云的客服人员。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Webpack】1083- 分享15个Webpack实用的插件!!!

use里面是提取使用css-loader进行转换,plugins里面的配置filename是最后合并完的.css文件名称,当allChunks为false时,只会提取初始化时的css文件,为true时会提取异步的...mini-css-extract-plugin 用途: 该插件与上面的exract-text-webpack-plugin的一样,都是将css样式提取出来, 唯一就是用法不同,本插件的webpack4...webpack.optimize.CommonsChunkPlugin 用途: 用于将页面里的公共代码提取出来,从而进行优化加载速度,该CommonsChunkPlugin只支持Webpack4之前。...再把Webpack运行时的代码也提取出来, 这样vendor就再次打包也不会变化,可以走浏览器缓存 optimization.SplitChunks 用途: 该功能与上面的webpack.optimize.CommonsChunkPlugin...一样,只不过optimization.SplitChunks是webpack4之后推荐使用的 安装 内置的,不需要安装。

54320
  • webpack入门——webpack的安装与使用

    一、简介 1、什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用处理。...我们可以直接使用 require(XXX) 的形式来引入各模块,即使它们可能需要经过编译(比如JSXsass),但我们无须在上面花费太多心思,因为 webpack 有着各种健全的加载器(loader)...CommonsChunkPlugin 的插件,它用于提取多个入口文件的公共脚本部分,然后生成一个 common.js 来方便多页面之间进行复用。...自定义公共模块提取 在文章开始我们使用了 CommonsChunkPlugin 插件来提取多个页面之间的公共模块,并将该模块打包为 common.js 。...//...省略其它配置 最终 webpack 执行后会乖乖地把样式文件提取出来: ?

    1.4K80

    【Hybrid开发高级系列】WebPack模块化专题

    CommonsChunkPlugin的插件,它用于提取多个入口文件的公共脚本部分,然后生成一个 common.js 来方便多页面之间进行复用。     ...不一样的是,它不仅仅是把公用代码提取出来放到一个独立的文件供不同的页面来使用,它更重要的一点是:把公用代码和它的使用者(业务代码)从编译这一步就分离出来,换句话说,我们可以分别来编译公用代码业务代码了...那么如果在这些分离出去的代码中如果有使用require引入样式文件,那么使用ExtractTextPlugin这部分样式代码是不会被抽取出来的。         ...为了把第三方库拆分出来(用标签单独加载),我们还需要用webpack的CommonsChunkPlugin插件来把它提取一下,这样他就不会与业务代码打包到一起了。...webpack生成html没有插入打包好的jscss https://segmentfault.com/q/1010000007676619 用webpack的CommonsChunkPlugin提取公共代码的

    37050

    前后端分离之vue2.0+webpack2 实战项目 -- webpack介绍

    同时,webpack还有丰富的插件 plugin,可以完成例如js,css的压缩,公共依赖模块的提取注入,甚至利用模板对 html 进行动态拼接等功能。...extract-text-webpack-plugin 插件 默认情况下,js依赖引入css,编译后,css被加在js中,如果我们想把css提取出一个单独的文件,可以使用这个插件,并可以对提取出的css...income.js中依赖income.less 如果不使用extractTextPlugin,编译后的目录结构为 ? 查看income.js,发现css被引入在js之中,模块id为16 ?...使用extractTextPlugin插件后 ?...插件 提取js的公共模块,此插件为webpack自带的插件 // 提取公共模块 new webpack.optimize.CommonsChunkPlugin({ names: ['vendors

    1.1K60

    Webpack 持久化缓存实践

    /common/componentA'; // 使用到 jquery 第三方库,需要抽离,避免业务打包文件过大 import$from'jquery'; // 加载 css 文件,一部分为公共样式,一部分为独有样式...第二个 CommonsChunkPlugin 用来提取第三方代码,将它们进行抽离,判断资源是否来自 node_modules,如果是,则说明是第三方模块,那就将它们抽离。...css 从打包好的 js 文件中抽离,生成独立的 css 文件,想象一下,当你只是修改了下样式,并没有修改页面的功能逻辑,你肯定不希望你的 js 文件 hash 值变化,你肯定是希望 css js...[contenthash:8].css`, }), ] } 如果你使用的是 webpack2,webpack3,那么恭喜你,这样就足够了,js 文件 css 文件修改都不会影响到相互的 hash 值。...具体来讲就是 webpack1 webpack 在计算 chunkhash 值得不同: webpack1 在涉及的时候并没有考虑像 ExtractTextPlugin 会将模块内容抽离的问题,所以它在计算

    1.4K50

    webpack入门指南

    配合externals使用 externals参看下面的解释 Webpack 是如此的强大,用其打包的脚本可以运行在多种环境下,Web 环境只是其默认的一种,也是最常用的一种。...考虑到 Web 上有很多的公用 CDN 服务,那么 怎么将 Webpack 公用的 CDN 结合使用呢?方法是使用 externals 声明一个外部依赖。...如果包含chunk文件,并且chunk文件中也因为了样式文件,样式文件不会嵌入到js中,而是直接输出到style.css 配合CommonsChunkPlugin一起使用 // ... module.exports...plugins: [ new webpack.optimize.CommonsChunkPlugin("commons", "commons.js"), new ExtractTextPlugin...所以要使用这个方法,你需要安装 babel-loader babel-core 两个包。记住你不需要完整的 babel 包。

    2.3K40
    领券