快速入门
1 | mkdir webpack-demo |
新增两个文件
1 | webpack-demo |
1 |
|
1 | import _ from "lodash"; |
执行打包命令
1 | npx 类似package.json中的scripts,可直接运行 |
也可以在 package.json 中新增 script,
1 | { |
那么我们可以直接使用如下命令进行打包
1 | npm run build |
当不指定配置文件时,就使用了默认的配置(npx webpack --config webpack.config.js
)
1 | const path = require("path"); |
如需要指定配置文件,可在 package.json 中指定相关配置文件
命令成功执行后,就会将所有文件打包到 dist 目录,我们打开 index.html,如果一切正常的话,我们可以在浏览器上看到Hello webpack
字样
我们可以使用npx webpack serve
启动 web 服务,默认会在 8080 端口上启动
1 | npm i webpack-dev-server -S -D |
加载其他资源文件
webpack.config.js 中的配置,在 module 对象的 rules 属性中可以指定一系列的 loaders,每一个 loader 都必须包含 test 和 use 两个选项,这段配置的意思是说,当 webpack 编译过程中遇到 require()或 import 语句导入一个后缀名为.css 的文件是,先将它通过 css-loader 转换,在通过 style-loader 转换,然后继续打包。use 选项的值可以是数组或字符串,如果是数组,它的编译顺序是从后往前
修改一下项目结构
修改dist/index.html
1 | <!doctype html> |
修改webpack.config.js
1 | const path = require('path'); |
导入 css 文件
1 | npm install --save-dev style-loader css-loader |
修改webpack.config.js
1 | const path = require('path'); |
新增src/style
文件
1 | .hello { |
修改src/index.js
1 | import _ from 'lodash'; |
1 | npx webpack serve --config webpack.config.js |
导入图片
1 | npm install --save-dev file-loader |
1 | const path = require('path') |
新增图片src/icon.png
修改src/index.js
1 | import _ from "lodash"; |
修改src/style.css
1 | .hello { |
导入数据
1 | npm install --save-dev csv-loader xml-loader |
webpack.config.js
1 | const path = require('path'); |
增加一些数据
src/data.xml
1 |
|
src/data.csv
1 | to,from,heading,body |
src/index.js
1 | import _ from 'lodash'; |
类似的数据文件还可以使用
src/data.toml
1 | title = "TOML Example" |
src/data.yaml
1 | title: YAML Example |
src/data.json5
1 | { |
需要安装相关插件
1 | npm install toml yamljs json5 --save-dev |
输出管理
通过 html-webpack-plugin
自动生成 index.html,并引入相关资源 通过 clean-webpack-plugin
自动清理 dist 目录
1 | npm install --save-dev html-webpack-plugin |
示例
src/print.js
1 | export default function printMe() { |
src/index.js
1 | import _ from 'lodash'; |
webpack.config.js
1 | const path = require('path'); |
统一输出 css 文件
1 | npm install --save-dev mini-css-extract-plugin |
webpack.config.js
1 | const { CleanWebpackPlugin } = require('clean-webpack-plugin') |
重新编译后在 dist 目录下生成了 main.css,且 index.html 中引入了 main.css
1 | npm run build |