美文网首页webpack技术
webpack打包的核心思路

webpack打包的核心思路

作者: HTAO濤 | 来源:发表于2021-06-07 08:04 被阅读0次

初始化:启动构建,读取与合并配置参数,加载 Plugin,实例化 Compiler

编译:从 Entry入口文件出发,针对每个 Module 串行调用对应的 Loader 去翻译文件的内容,再找到该 Module 依赖的 Module,递归地进行编译处理

输出:将编译后的 Module 组合成 Chunk,将 Chunk 转换成文件,输出到文件系统中

5. 一个简单的webpack配置示例

const path = require('path');

const webpack = require('webpack');

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

module.exports = {

    entry: path.resolve(__dirname, '../src/index.js'), //指定入口文件,程序从这里开始编译,__dirname当前所在目录, ../表示上一级目录, ./同级目录

    output: {

        path: path.resolve(__dirname, '../dist'), // 输出的路径

        filename: 'app/[name]_[hash:8].js'  // 打包后文件

    },

    module: {

        rules: [

            {

                test: /\.(js|jsx)$/,

                use: {

                    loader: 'babel-loader',

                    options: {

                        presets: ['es2015', 'react'],

                    }

                },

                exclude: /node_modules/

            }

        ]

    },

   plugins: [//plugin下的插件

     new HtmlWebpackPlugin({

       template: path.resolve(__dirname, '../src/index.template.html'),

       inject: true

     })

   ]

loader下:

babel-loader: babel加载器

babel-preset-es2015: 支持es2015

babel-preset-react: jsx 转换成js

loader是支持以数组的形式配置多个的,当Webpack在转换该文件类型的时候,会按顺序链式调用每一个loader,前一个loader返回的内容会作为下一个loader的入参。

plugin下:

html-webapck-plugin插件的两个主要作用:

为html文件中引入的外部资源如script、link动态添加每次compile后的hash,防止引用缓存的外部文件问题

可以生成创建html入口文件,比如单页面可以生成一个html文件入口,配置N个html-webpack-plugin可以生成N个页面入口

webpack基于发布订阅模式,在运行的生命周期中会广播出许多事件,plugin插件通过监听这些事件,就可以在特定的阶段执行自己的插件任务,从而实现自己想要的功能。

一些常见的loader和plugin可以看看这里,最好对这些有个大概了解和记忆。。

相关文章

  • webpack打包的核心思路

    初始化:启动构建,读取与合并配置参数,加载 Plugin,实例化 Compiler 编译:从 Entry入口文件出...

  • webpack详解

    webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...

  • Webpack 知识梳理

    1. Webpack 简介及相关知识 Webpack —— JavaScript应用模块打包工具。 1.1 核心概...

  • webpack初学概念

    webpack概念:webpack是现代 JavaScript 应用程序的静态模块打包器 核心概念 1.ent...

  • webpack 原理

    webpack 核心 核心概述 entry 入口文件:js 代码文件,可执行的 node 模块或打包的入口文件。 ...

  • webpack

    loader 是webpack的核心工作原理,通过这些资源加载器,完成webpack的打包工作plugin相当于挂...

  • webpack 4.0 完全讲解及源码解读(2)

    webpack配置 ​ webpack主要是打包,所以其核心存在两个部分,入口和出口,你可以把webp...

  • 初识webpack

    1 webpack是什么? Webpack是一个开源的JavaScript模块打包工具,其最核心的功能是解决模块之...

  • webpack学习笔记(踩坑笔记)

    认识webpack webpcak是基于JS应用的前端模块化打包工具,强调模块化(核心)和打包。流行打包工具:we...

  • 手写webpack打包基础实现

    实现了最基础打包,源码可以查看https://github.com/huker/webpack-demo 整体思路...

网友评论

    本文标题:webpack打包的核心思路

    本文链接:https://www.haomeiwen.com/subject/ydykeltx.html