webpack 初识

2019-07-10  本文已影响0人  行走的蛋白质
webpack 构建流程

简单地说分三步走:

webpack 就是一个模块打包工具。
打包工具要解决的问题
webpack 的工作原理

webpack 处理文件的过程可以分为两个维度:1.文件的关系处理-加载顺序,主要通过文件和模块的标记方法来实现。2.文件的内容处理-代码优化,主要通过 loader 和 plugins 来处理

六个核心概念
module chunk bundle 的区别、关系
filename 和 chunkFilename
webpackPrefetch、webpackPreload 和 webpackChunkName 是干什么的?
hash、chunkhash、contenthash

hash 一般是结合 CDN 缓存来使用的。如果文件内容改变的话那么对应文件的 hash 值也会改变,对应 HTML 引用的 URL 地址也会改变,触发 CDN 服务器从源服务器上拉取对应数据,进而更新本地缓存

source-map

它就是一份源码和转换后代码的映射文件
devtool:cheap-module-eval-source-map

ES module 模块引入方式
// 引入
import Protein from './protein.js';
// 导出
export default Protein;
CommonJS 模块引入规范
// 引入
const Protein = require('./protein.js');
// 导出
module.exports = Protein;
项目中安装 webpack
// 安装 webpack
npm init -y;
npm install webpack webpack-cli -D;
基础写法
const path = require('path');

module.exports = {
    mode: 'development', // 打包模式
    // entry: './src/index.js',
    entry: {
        app: './src/index.js',
        print: './src/print.js'
    },
    output: {
        // filename: 'main.js',
        // publicPath: 'http://cdn.com.cn', // 从 cdn 引入
        filename: '[name].[chunkhash:8].min.js', // 对应 entry 生成的文件
        chunkFilename: '[name].[chunkhash].chunk.js', // 对应 entry 未列入,但是需要异步引入的文件
        path: path.resolve(__dirname, 'dist')
    },
}
上一篇 下一篇

猜你喜欢

热点阅读