有兴趣能够去极客时间《玩转 webpack 课程》css
- 单入口:entry 是一个字符串
```
module.exports = {
entry: './path/to/my/entry/file.js'
}
```
- 多入口: entry 是一个对象
```
module.exports = {
entry: {
app: './src/index.js',
home: './src/home'
}
}
```
复制代码
```
module.exports = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
}
}
```
复制代码
```
module.exports = {
entry: {
app: './src/index.js',
home: './src/home'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js' // 经过占位符确保文件名称不一致
}
}
```
复制代码
webpack 自己只支持 js 和 json 两种文件类型,经过 loaders 能够去支持其余文件类型而且将他们转换成有效的模块,还能添加到依赖模图中。
经常使用loaders 后面构建会用到html
名称 | 描述 |
---|---|
babel-loader | 转换 es六、es7等新特性写法 |
file-loader | 进行图片文字等打包 |
css-loader | 支持.css文件类型加载和解析 |
less-loader | less转换成 css |
ts-loader | ts转换成js |
经常使用的 pluginsnode
名称 | 描述 |
---|---|
clean-webpack-plugin | 清理构建目录 |
html-webpack-plugin | 建立html 文件去承载bound文件 |
friendly-errors-webpack-plugin | 友好的错误提示 |
uglifyjs-webpack-plugin | 压缩 js |
zip-webpack-plugin | 打包文件压缩成 zip |
commons-chunk-plugin | 将相同模块提成公共js |
环境 | 描述 |
---|---|
development | 设置 process.env.NODE_ENV 为development ,开启 NamedChunkplugin 和 namedModulesPlugin 代码热更新时很适用 |
production | webpack 会去开启默认压缩等 |
none | 不开启任何优化选项 |
设计脑图以下: react
rick-webpack
├─.eslintrc
├─.gitignore
|─.travis.yml
├─CHANGELOG.md
├─README.md
├─package.json
├─test // 测试文件
├─lib //放置配置代码
| ├─webpack.base.js
| ├─webpack.dev.js
| └webpack.prod.js
复制代码
npm i eslint babel-eslint eslint-config-airbnb-base -D
复制代码
新增一个 .eslintrc
文件webpack
{
"root": true,
"env": {
"node": true
},
"parser": "babel-eslint",
"extends": ["airbnb-base"],
"rules": {
"indent": ["error", 4]
}
}
复制代码
冒烟测试能够保证咱们的框架是否可用,可是细节部分就须要咱们用单元测试git
核心思想: 代码集成到主干以前,必须经过自动化测试,只要有一个用例失败,就不能集成到主干。es6
github目前流行 CI ,travis CI 占比很明显 github
接入方式很简单,只须要简单三步web
language: node_js
sudo: false
cache:
apt: true
directories:
- node_modules
node_js: stable #设置相应的版本
install:
- npm install -D #安装 builder 依赖
script:
- npm test
复制代码
后续在迭代过程很重要 良好的 git commit有如下优点npm