1.与webpack类似的工具还有哪些?谈谈你为什么选择使用或放弃webpack?
思维导图
各个demo地址
https://gitee.com/laddish/parcel-demo
https://gitee.com/laddish/grunt-demo
https://gitee.com/laddish/gulp-demo
https://gitee.com/laddish/rollup-demo
grunt
cnpm i grunt grunt-babel @babel/core @babel/preset-env -D
Gruntfile.js
gulp
不适合项目复杂

yarn add gulp-cli -gyarn add gulp -Dnpx -p touch nodetouch gulpfile.jsgulp --help
yarn add --save-dev gulp-cli gulp gulp-babel @babel/core @babel/preset-env
gulpfile.js
基于任务流
读取文件传给babel任务写到dist里去
api
src
pipe
desk

{"name": "gulpdemo","version": "1.0.0","main": "index.js","license": "MIT","scripts": {"build":"gulp"},"dependencies": {"@babel/core": "^7.13.10","@babel/preset-env": "^7.13.12","gulp": "^4.0.2","gulp-babel": "^8.0.0"}}
webpack

webpack.config.js
mode 模式
devtool 不生成sourcemap
entry 入口文件
module
plugin 插件

rollup
介绍 | rollup.js 中文文档 | rollup.js 中文网
https://www.rollupjs.com/guide/introduction

yarn add rollup-plugin-babel rollup-plugin-node-resolve babel-plugin-external-helpersyarn add @babel/core @babel/preset-env

"scripts":{"build":"rollup -c ./rollup.config.js"}
rollup.config.js
input 类似于webpack的entry
output 输出
file output filename
format:’cjs’ common.js module.exports
exports default
plugins 插件

{"name": "rollupdemo","version": "1.0.0","main": "rollup.config.js","license": "MIT","scripts": {"build": "rollup -c ./rollup.config.js"},"dependencies": {"@babel/core": "^7.13.10","@babel/preset-env": "^7.13.12","babel-plugin-external-helpers": "^6.22.0","rollup-plugin-babel": "^4.4.0","rollup-plugin-node-resolve": "^5.2.0"}}
import resolve from "rollup-plugin-node-resolve";import babel from "rollup-plugin-babel";export default {input: "src/main.js",output: {file: "dist/bundle.js",format: "cjs",exports: "default",},plugins: [resolve(),babel({presets: ["@babel/preset-env"],exclude: "node_modules/**",}),],};
parcel
快速,零配置,静态资源es6都内置

安装

yarn global add parcel-bundler
parcel -V
启动

{
"name": "parceldemo",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"start": "parcel src/index.html -p 8089"
}
}


