昨天 parcel(
https://parceljs.org/)发布了1.9.0
https://medium.com/@devongovett/parcel-v1-9-0-tree-shaking-2x-faster-watcher-and-more-87f2e1a70f79
parcel 是一个类似 webpack 的打包工具,主要特点是零配置打包前端工程,自动分析并安装所需 plugin,而不必像 webpack 那样需要写一大堆的配置文件、手动安装 plugin。
之所以介绍这个版本,是因为这个改进:
Up to 2x faster file watcher — Parcel’s file watcher now runs in a background worker for performance and stability. This speeds up compilation times during development by up to 2x!
上个月我在 win10 上面试了一下,一个几乎啥都没有的 vue(pug + stylus)项目,在 exfat 分区上用了快1分钟才完成首次的 dev 打包。这个体验比 webpack 差太多了,所以就去报了 issue。很快试了当时的 pull request #1368,冷启动时间(without cache)从40s变成了4s,这次的1.9.0已经合并了那个 pr,理论上 win 平台上面的速度应该没问题了(该 pr 作者在 ntfs 分区上也经历过多次)。
对于前端初学者来说,parcel 是一个可以完全不用学习 webpack 就可以享受现代 spa 前端开发方式的工具。
当然缺点也不是没有,比如运行的时候,parcel 会分析 js 文件并自动安装需要的包,但是每次只能安装一个。一个简单的 vue(pug + stylus)的项目,一开始的 package.json 里 dependencies 和 devDependencies 都是空的。在执行了 parcel 之后,会变成:
"dependencies": {
"vue": "^2.5.16",
"vue-hot-reload-api": "^2.3.0"
},
"devDependencies": {
"@vue/component-compiler-utils": "^2.0.0",
"parcel": "^1.9.0",
"pug": "^2.0.3",
"stylus": "^0.54.5",
"vue-template-compiler": "^2.5.16"
}
其中只有 parcel 是我自己加的,其它6个依赖都是 parcel 自动分析出来之后增加的。也就是说,相当于至少执行了4次 yarn add/yarn add -D 之后 parcel 才开始能正常工作。这个过程不考虑网速的话,大概也要将近1分钟(我刚试的,本地已经有 cache 了几乎不需要网络访问)。当然对于初学者来说,反正也不知道自己需要啥包,总比卡在哪了不知道怎么办更省时间。
另外一个问题是只支持一个入口,也就是说如果有除了 index.html 以外的 html 页面的话,还是得用 webpack。假如想做个 chrome popup extesion 的话,除了 popup.html 很大概率还需要一个 options.html。这种情况下,还是老老实实找个 webpack boilerplate 自己改吧,parcel 是无能为力了。
--
FROM 125.239.149.*