前端构建工具Parcel 了解一下

2018-01-15

几个没有基础的人,各自选择了自己感兴趣的语言,一起学习编程。几天之后,问他们都学了些啥。学C++的人说:我写了个简单的程序,输出九九乘法表;学C++的人说:我写了个发声程序,猫叫狗叫动物叫;学phthon的人说,我web服务器都搭好了。最后学前端开发的说:我学会了怎么搭建开发环境。

构建工具向来就是前端的一个大麻烦。webpack是现在最流行的打包工具,然而有着恶梦一样的文档;Fis是个好东西,可惜用的人不多;vue-cli和create-react-app,本质上只是把webpack配置给藏了起来,随着各种需要自定义的需求,最终还是得把配置暴露出来,从头学一遍webpack。忽然出现的Parcel,简直就是前端构建工具的一股清流,非常适合安利给广大前端初学者。


Parcel非常简单,官网有Demo和配方,照着做一遍就知道怎么回事,这里不啰嗦。这里只列出踩过的一些坑。事实上版本更新非常快,相信许多问题也能在未来的版本中得到解决。


  1. 关于“零配置”。Parcel是典型的“约定大于配置”的设计思路。实际上也不是完全的零配置,只是把HTML、JS 和 CSS别是通过 posthtml、babel 和 postcss 处理,因此可以分别修改 .posthtmlrc、.babelrc 和 .postcssrc,来满足各种个性化定制。
  2. 如果引用一个空的文件,开发模式不会报任何错误,但生产模式会报"No input specified: provide a file name or a source string to process"错误。解决方法:文件内容输入一个空格即可。
  3. 引入新的资源(图片、scss等)并不能实时生效。解决方案:重新运行parcel watch。
  4. 修改图片而不修改文件名的情况下,图片不会刷新。和上一条一样,重新运行即可。(只判断文件名也是Parcel速度快的原因之一吧)。
  5. 开发模式下想要每次打包完运行gulp等:看了源码,暂不支持,放弃。
  6. 开发模式和生产模式调用不同的配置文件:暂不支持,放弃。
  7. SourceMap:暂时没有,等后面版本补上。(撰本文时最新版本1.5.1还不完善,后来新版已支持,但笔者尚未体验)


尽管许多功能缺失,对于典型的web开发,还是可以满足需求,有兴趣可以体验一下。但目前还不推荐生产环境中使用。零配置意味着过程是黑箱,遇到问题难以解决。另一方面目前版本更替很快,bug超多,看issues能把你吓死。


期待Parcel能快速成长!




本文未经许可禁止转载,如需转载关注微信公众号【工程师加一】并留言。