Webpack 基础笔记 | 青训营笔记

87 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 15 天,今天在课程中学习了 Webpack 的相关知识,比如 Webpack 的本质是什么以及 Webpack 技术优势、Webpack 的使用等。

什么是 Webpack

Webpack 是一款前端工程化工具。Webpack 可以对前端资源(比如 HTML、CSS、JavaScript 以及各种图片、字体文件等)进行编译、打包。

Webpack 对 TypeScript 以及各种 CSS 预解析器提供了很好的支持。

Webpack 支持 HMR (Hot Module Replacement, 模块热替换) 和开发服务器,可以在本地创建服务器并运行前端项目,在代码修改时,可以进行热更新,立即看到效果。

安装 Webpack

使用 Webpack 首先需要安装 Node.js。安装后可以使用 npm 命令。

image.png

Webpack 的核心流程

  1. 入口处理
  2. 依赖解析
  3. 资源处理
  4. 资源合并打包

Webpack 配置

Webpack 配置位于项目根目录的 webpack.config.js 文件中。

webpack.config.js 文件中,需要使用 module.exports 导出一个配置对象。

module.exports = {
    // 配置项
}

声明入口文件

module.exports = {
    //...
    entry: "./src/index"
}

声明输出

const path = require("path")

module.exports = {
    //...
    output: {
        filename: "[name].js",
        path: path.join(__dirname, "./dist")
    }
}

安装和使用 Loader

css-loaderstyle-loader 为例:

安装 Loader:

css-loader: github.com/webpack-con… style-loader: webpack.js.org/loaders/sty…

npm add -D css-loader style-loader

webpack.config.js 文件中定义 Loader:

module.exports = {
    //...
    module: {
        rules:[
            {
                test: /\.css/i,
                use: ["style-loader", "css-loader"]
            }
        ]
    }
}

在入口文件 index.js 使用 CSS Loader:

const styles = require("./index.css")

或者:

import styles from "./index.css"

安装和使用插件

html-webpack-plugin 为例:

使用 Webpack 插件 html-webpack-plugin 可以打包生成 HTML 文件。

安装:

npm i -D html-webpack-plugin

webpack.config.js 文件中配置:

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    //...
    plugins: [new HtmlWebpackPlugin()]
}

Webpack 使用 Babel

Babel 可以把使用 ES6/ES7 等“高级”语法编写的 Javascript 代码转换为 ES5/ES3 的“通俗”语法。

Babel 官方文档:babel.docschina.org/docs/en/ind…

Webpack 使用 HMR

HMR (Hot Module Replacement, 模块热替换) 可以在代码经过修改后立即查看效果,极大地提高了开发效率。

webpack.config.js 文件中配置开启 HMR:

module.exports = {
    //...
    devServer: {
        hot: true
    }
}

Webpack 使用 Tree Shaking

Tree Shaking (树摇) 用于删除项目中用不到的代码。

webpack.js.org/guides/tree…