项目初始化
- 创建
npm
项目npm init
- 安装
webpack
依赖npm i webpack webpack-cli -save-dev
- 创建
js
入口文件src/index.js
- 创建
webpack
配置文件 ```javascript const path = require(‘path’)
module.exports = {
mode:’development’,
entry:’./src/index.js’,
output:{
filename:’bundle.js’,
path:path.resolve(__dirname,’./dist’)
}
}
5. 配置 `package.json` 的 `build` 命令
6. 执行 `npm run build` 打包
<a name="t5MEz"></a>
#### 首页移植
1. 资源文件拷贝,将源码中 `html / js / css / img` 文件拷贝至新项目中
1. 将 `index.html` 拷贝到 `src / index.html`
2. 将 `js` 目录拷贝至 `src/js`
3. 将 `css` 目录拷贝至 `src / css`
4. 将 `img`目录拷贝至 `src / img`
2. 删除`index.html`中的`link`和`script`
3. 安装`html-webpack-plugin`插件
1. `npm i html-webpack-plugin --save-dev`
4. 在 `webpack.config.js` 中配置`html-webpack-plugin`
5. 在`src/ index.js`中添加css引用
1. `npm i -D css-loader style-loader`
2. 在`webpack.config.js` 中添加
```javascript
module:{
rules : [
test:/\.css$/,
use: ['style-loader','css-loader']
]
}
import './css/public.css'
import './css/index.css'
- 在
src/index.js
中添加js引用import './js/jquery-1.12.4.min.js'
import './js/public.js'
import './js/nav.js'
import './js/jquery.flexslider-min.js'
- 上述会产生
$
没定义的情况,所以将jq
换成node_module
安装包
npm i -S jquery flexslider
- 调整
index.html
中的图片路径
进阶操作之多 js
分离
目前index.html
和login.html
同时引用了main.js,main.js
对应src/index.js
,该文件同时引用了index.html
和login.html
的依赖资源,这样会导致 src/index.js
随项目规模扩大越来越臃肿,要解决这个需要指定index.html
和login.html
分别引用不同的js
文件,这就需要涉及 webpack
多入口配置
进阶操作之开发模式
- 安装
webpack-dev-server
npm i webpack-dev-server --save-dev
- 在
webpack.config.js
中添加webpack-dev-server
配置 - 安装
npm i copy-webpack-plugin -D
- 复制静态资源目录下的
img
- 复制静态资源目录下的
进阶操作之css
剥离
- 安装
mini-css-extract-plugin
npm i mini-css-extract-plugin -D
- 在
webpack.config.js
中添加相关配置
进阶操作之 js css
压缩
js
压缩
npm i -D uglifyjs-webpack-plugin
css
压缩
npm i -D css-minimizer-webpack-plugin
- 使用
treeshaking
使用前提和触发条件mode
为生产模式- 引用
npm
包得esm
规范 - 通过解构得方式获取方法
进阶操作之利用 ejs
进行公共代码复用
- 安装
ejs-loader
npm i -D ejs-loader
src
上面创建header.ejs
文件,将公共header html
部分放入ejs 目录下得 header.ejs
html
中引入header.ejs
<%require('./ejs/header.ejs')({title:'首页'})%>
- 执行
npm run build
进阶操作之利用CleanWebpackPlugin
清空dist
目录
npm i -D CleanWebpackPlugin