`

[译]webpack官网文档 :指南 -- 5.代码分割 - CSS

阅读更多

原创翻译,转载请注明出处。 

原文地址:https://webpack.js.org/guides/code-splitting/

 

用webpack打包CSS文件,把CSS文件像别的模块一样引入你的JavaScript代码,使用css-loader(把CSS作为JS模块输出),并且可选择应用ExtractTextWebpackPlugin(提取打包后的CSS并且输出CSS文件)。 

 

引入CSS

像JavaScript模块一样引入CSS文件,以vendor.js举例:

import'bootstrap/dist/css/bootstrap.css';

 

使用css-loader

像下面这样在webpack.config.js离配置css-loader:

module.exports ={
    module:{
        rules:[{
            test:/\.css$/,
            use:'css-loader'
        }]
    }
}

 

结果就是,CSS和JavaScript被打包在一起。

这有个缺点就是你不能再利用浏览器的功能在异步和并行加载CSS。反而是在所有的JavaScript包被加载完之前你的页面不得不等待,然后再给自己反应样式。

webpack可以通过使用ExtractTextWebpackPlugin给CSS单独打包来解决这个问题。

 

使用ExtractTextWebpackPlugin

像下面这样安装ExtractTextWebpackPlugin:

npm i --save-dev extract-text-webpack-plugin

在webpack.config.js里分三个步骤添加之后才能使用这个插件。

+var ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
    module: {
         rules: [{
             test: /\.css$/,
-            use: 'css-loader'
+            use: ExtractTextPlugin.extract({
+                use: 'css-loader'
+            })
         }]
     },
+    plugins: [
+        new ExtractTextPlugin('styles.css'),
+    ]
}

 

通过上面两步,你可以把所有的CSS模块生成一个单独的包,并把它作为单独的标签加入到index.html里。

 

-- End --

分享到:
评论

相关推荐

    webpack 入门

    - **代码分割**:Webpack 支持基于动态导入的代码分割技术,使得应用可以在运行时按需加载代码,从而优化加载时间和性能。 - **插件系统**:Webpack 提供了一个强大的插件系统,允许开发者扩展其功能,比如优化输出...

    webpack 中文指南

    - **官方文档**:[Webpack官网](https://webpack.js.org/) - **中文指南**:[Webpack中文指南](https://zhcn.webpack.js.org/) - **社区资源**:GitHub、Stack Overflow等社区讨论。 ### 结语 Webpack作为一个强大...

    前端开源库-hot-builder-cg.zip

    3. **自动化流程**: 自动化处理源代码的转换、压缩、合并,以及处理CSS预处理器(如Sass、Less)、图片优化等任务。 4. **配置管理**: 配置文件(如webpack.config.js)用于定义构建规则,包括入口、出口、加载器...

    Webpack2 中文文档 pdf

    ### Webpack2 中文文档概览 #### Webpack 概述 Webpack 是一款现代前端项目的模块打包工具。它能够将项目中的多个独立模块按照依赖关系和规则打包成适合生产环境部署的静态资源,并且支持按需加载的代码分割功能。...

    质量-webpack.7z

    1. **代码分割(Code Splitting)**:将大型应用拆分为多个小块,按需加载,减少初始加载时间。 2. **Tree Shaking**:移除未使用的代码,减小程序体积。 3. **Source Maps**:在开发阶段提供源码映射,方便调试。 4...

    webpack-guide:Webpack指南

    **插件(Plugins)**:插件扩展了 Webpack 的核心功能,执行更复杂的任务,如资源分析、优化、代码分割、热模块替换(HMR)等。插件通常在 Webpack 编译生命周期的不同阶段运行,如before-run、run、compile、after-...

    saasLifeSite.zip

    在Vue项目中,Webpack负责处理依赖关系、代码分割、热重载等功能。 4. **配置文件详解** - **.browserslistrc**:定义了项目支持的浏览器范围,影响Autoprefixer自动添加浏览器前缀和Babel的转译目标。 - **....

    webpack学习指南

    Webpack 是一个现代JavaScript应用程序的静态模块打包工具。它在开发过程中扮演着重要...通过阅读提供的"xmind"文档,你将获得更详细的Webpack指南,包括概念解析、功能介绍和实例演示,进一步提升你的Webpack技能。

    webpack 教材学习

    Webpack 是一个现代JavaScript应用程序的模块打包工具,它能够将各种资源如JavaScript、CSS、图片等文件,通过配置和插件进行处理和优化,最终打包成一个或多个可部署的静态资源。在“webpack 教材学习”中,你将...

    webpack-react::package:一个示例项目,以演示如何将ES6,React,SASS和Bootstrap与Webpack捆绑在一起

    **Webpack React 示例项目** 在现代前端开发中,Webpack 是一个至关重要的工具,它是一个模块打包器,能够...如果你想要深入学习,建议阅读相关的 Webpack 文档和 React 官方指南,以及探索其他流行的前端工具和技术。

    imweb-tpl-loader:imweb-tpl-loader

    5. **集成性**:imweb-tpl-loader可以与其他Webpack插件和loaders无缝配合,比如Babel用于转译ES6+语法,或者CSS预处理器如Sass或Less。 使用imweb-tpl-loader时,你需要配置Webpack的loader部分,指定模板文件的...

    react-course:ui.dev的“ React”课程的代码

    通过配置,Webpack还可以实现代码分割、热模块替换等功能,提高开发效率。 React-Router是React生态中的路由解决方案,它允许我们在单页应用中管理多个视图,根据URL改变来切换不同的组件。使用React-Router,...

    前端项目-DinaKit.zip

    为了提高用户体验,DinaKit可能包含了性能优化策略,如懒加载、代码分割、资源预加载等。 总的来说,DinaKit是一个前端开发的综合解决方案,结合了iTemplates框架和一系列工具,旨在简化开发过程,提升Web应用的...

    react-redux-links:我在React,Redux,ES6等上收集的精选教程和资源链接

    5. Webpack官方文档:https://webpack.js.org/guides/getting-started/,详细的配置指南和案例解析。 6. "React, Redux, and ES6"书籍:...

    Nuxt.js v2.8.x 开发手册.pdf

    - **代码分割**:通过自动代码分割功能,可以显著提高应用的加载速度。 - **预渲染**:允许生成静态 HTML 文件用于部署,这对于 SEO 和首次加载性能至关重要。 - **集成 Vuex**:Nuxt.js 内置 Vuex 支持,便于管理...

    Styleguide:样式指南-Beta

    4. **适配性与性能优化**:考虑到样式指南的响应性可能尚未完成,JavaScript可能被用来进行性能优化,比如延迟加载、代码分割或利用Intersection Observer API来提升用户体验。 5. **自动化测试**:为了确保...

    js代码-理解webpack工作原理

    Webpack 提供多种性能优化策略,如代码分割(Code Splitting)、Tree Shaking(移除未使用的代码)、异步加载(Async Loading)等,这些都能减少打包后的文件大小。 ### 9. README.txt 文件 在实际项目中,`README....

    Web前段开发规范手册

    - 代码分割:按需加载,如使用Webpack的动态导入功能。 - 优化DOM操作:减少不必要的DOM操作,避免在渲染过程中阻塞浏览器。 6. 兼容性和无障碍性(Accessibility,A11y): - 适应不同浏览器:确保代码在主流...

    React全栈 Redux Flux webpack Babel整合开发.pdf

    综上所述,“React全栈 Redux Flux webpack Babel整合开发.pdf”文档很可能是一份关于如何利用React、Redux、Flux、webpack和Babel构建高效、可维护的前端应用的综合指南。它不仅会介绍这些技术的基础知识,还可能...

    前端开源库-Coeus.zip

    2. **文档**:可能包含README.md文件,提供项目介绍、安装指南、使用示例和API参考等信息。 3. **示例或演示**:可能存在一个或多个例子目录,展示了库的不同用法和功能。 4. **配置文件**:如package.json,记录了...

Global site tag (gtag.js) - Google Analytics