blog icon indicating copy to clipboard operation
blog copied to clipboard

说说 ParcelJS

Open sorrycc opened this issue 7 years ago • 12 comments

看到 ParcelJS 还是眼前一亮的。

新建 index.htmlindex.jsindex.css,然后 parcel index.html,就能拿到可运行的 html、js 和 css 组合。html 可以作为入口正是我期望的,这让前端开发回归到本来的状态,很舒服。

ParcelJS 是以 assets 方式组织的,assets 可以是任意文件,所以你可以构建任意文件。而在 webpack 中,只有 JS 是一等公民(webpack@4 会增加 CSS 为一等公民),所以必须是以 JS 为入口去组织其他文件,这很别扭。

速度是 ParcelJS 主要卖点。体验下来确实快,原因是多核(通过 worker 平行构建)、文件系统缓存(二次构建会快,和 webpack 的 dll 异曲同工)以及 AST 传递(减少了字符串解析的过程)。不过 webpack 也有多核处理 loader 和压缩的插件,没对比过,不知道差异如何。另外 webpack 的构建速度慢在 dev 模式下还是可以的,主要还是压缩慢,在压缩速度上没有突破,仅提升编译速度,只能解决一部分问题。

关于 0 配置。ParcelJS 本身是 0 配置的,但 HTML、JS 和 CSS 分别是通过 posthtml、babel 和 postcss 处理的,所以我们得分别配 .posthtmlrc.babelrc.postcssrc。其实是换了个地方配置。

功能上,Code Splitting 和 Hot Module Replacement 都没啥新的,和 webpack 等工具相同。对于我来说,功能目前还缺 SourceMap、公共文件提取、publicPath 配置(Code Splitting 需要)、Tree Shake 和 Scope Hoist 等。

很好的开始,持续维护的话应该不缺用户。


参考:

  • https://hackernoon.com/announcing-parcel-a-blazing-fast-zero-configuration-web-application-bundler-feac43aac0f1
  • https://parceljs.org/
  • https://github.com/jaredpalmer/react-parcel-example

sorrycc avatar Dec 07 '17 00:12 sorrycc

但 HTML、JS 和 CSS 分别是通过 posthtml、babel 和 postcss 处理的,所以我们得分别配 .posthtmlrc、.babelrc 和 .postcssrc

这种号称0配置的都表示深深怀疑

xujihui1985 avatar Dec 07 '17 01:12 xujihui1985

好像只能以 HTML 文件为入口?能打包纯 JS 模块么?

oldj avatar Dec 07 '17 01:12 oldj

好像只能以 HTML 文件为入口?能打包纯 JS 模块么?

入口可以是任意文件。

sorrycc avatar Dec 07 '17 01:12 sorrycc

这种号称 0 配置的都表示深深怀疑

是否有配置得看需求,个性化需求摆在这边,怎么可能 0 配置。

sorrycc avatar Dec 07 '17 01:12 sorrycc

期待它持续的维护和发展

mamba-1024 avatar Dec 07 '17 02:12 mamba-1024

看起来不错,,

linyongping avatar Dec 07 '17 05:12 linyongping

比webpack是要简单一些,目前肯定很多东西支持不如webpack,看后续怎么发展了

ssly avatar Dec 10 '17 02:12 ssly

为什么我按照官网做会报错啊 。。。

xc1124646582 avatar Dec 12 '17 05:12 xc1124646582

期待啊 看看最后会发展到什么程度

think2011 avatar Dec 12 '17 08:12 think2011

打包项目用 webpack, 打包libs 用 rollup, 写个 demo 用 parcel, 完美

zsl99a avatar Dec 21 '17 02:12 zsl99a

目前多入口构建也不支持吧

stxwd46 avatar Feb 07 '18 07:02 stxwd46

小白求助,安装了parcel-jquery,接着再如何使用parallax.js这种库呢

ppppppsmash avatar May 08 '18 09:05 ppppppsmash