转换 ES6 语法
转换 JSX
CSS 前缀补全/预处理器
压缩混淆
图片压缩
无代码压缩和混淆 ——》 通过在线工具压缩混淆代码 ——》 ant + YUI Toll 在本地对代码压缩混淆 ——》 requirejs commonjs模块化概念的出现,前端模块化的编写方式也越来越复杂,演变出了grunt ——》 gulp fis3 ——》 rollup webpack parcel
*webpack* | *grunt* | *gulp* | |
---|---|---|---|
定义 | Module bundler | Task runner | Task runner |
语言 | JavaScript | Node.js | Node.js |
发布时间 | 2012.3 | 2012.6 | 2013.7 |
GitHub stars | 40766 | 11796 | 29427 |
周下载量 | 3,385,392 | 478,876 | 816,228 |
社区生态丰富
配置灵活和插件化扩展
官方更新迭代速度快
webpack 默认配置文件:webpack.config.js
可以通过 webpack --config 指定配置文件
module.exports = {
entry: ‘./src/index.js‘,
output: ‘./dist/main.js‘,
mode: ‘production‘,
module: {
rules: [
{
test: /\.txt$/,
use: ‘raw-loader‘
}
]
},
plugins: [
new HtmlwebpackPlugin({
template: ‘./src/index.html’
})
]
}
module.exports = {
entry: ‘./src/index.js‘,
output: ‘./dist/main.js‘
}
nvm install v10.15.3
检查是否安装成功:node -v, npm -v
mkdir
my-project
npm init -y
npm install webpack webpack-cli --save-dev
检查是否安装成功:./node_modules/.bin/webpack -v
./node_modules/.bin/webpack
{
"name": "hello-webpack",
"version": "1.0.0",
"description": "Hello webpack",
"main": "index.js",
"scripts": {
"build": "webpack"
},
"keywords": [],
"author": "",
"license": "ISC"
}
通过 npm run build 运行构建
原理:局部安装的依赖,如果有创建一些命令,会在 node_modules/.bin目录创建软链接,package.json是可以默认的读取到.bin目录下的这些命令。
原文:https://www.cnblogs.com/zhaoyang007/p/12879112.html