webpack
属性定义
Entry
: 入口Module
:模块,webpack中一切皆是模块Chunk
:代码库,一个chunk由十多个模块组合而成,用于代码合并与分割Loader
:模块转换器,用于把模块原内容按照需求转换成新内容Plugin
:扩展插件,在webpack构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要做的事情Output
: 输出结果
webpack
执行流程
webpack启动后会从 Entry 里配置的 Module 开始递归解析 Entry 依赖的所有Module.每找到一个Module,就会根据配置的Loader去找出对应的转换规则,对Module进行转换后,再解析出当前的Module依赖的Module.这些模块会以Entry为单位进行分组,一个Entry和其所有依赖的Module被分到一个组也就是一个Chunk。最好Webpack会把所有Chunk转换成文件输出。在整个流程中Webpack会在恰当的时机执行Plugin里定义的逻辑。
初始化和安装
Create-react-app
初始化新建项目
执行命令
npx create-react-app ui-component-demo
cd ui-component-demo
npm start
会自动打开http://localhost:3000
:
安装webpack
,配置webpack.config.js
,package.json
执行命令:
npm install --save-dev webpack webpack-cli
配置webpack.config.js
const path = require('path');
module.exports = {
mode: "production",
entry: {
index: "./src/components/index.js"
},
output: {
path: path.resolve(__dirname, "dist"),
filename: '[name].js',
library: "myLibrary",
libraryTarget: 'umd',
publicPath: '/', // 上线时配置的是cdn的地址
},
resolve: {
modules: [
"node_modules",
path.resolve(__dirname, "app")
],
// 用于查找模块的目录
extensions: [".js", ".json", ".jsx", ".css"],
alias: {
}
},
devServer: {
hot: true,
https: false,
compress: false,
port