宣布Parcel:一个快速,零配置的Web应用程序捆绑包
今天,我很高兴宣布Parcel ,这是我在过去几个月中一直在致力于的一种快速,零配置的Web应用程序捆绑包。 在Github上查看!
我开始研究Parcel,以解决现有模块捆绑器(如Browserify和Webpack)中发现的两个主要问题: 性能和配置体验 。
特征
- bundle 快速的捆绑时间-多核编译和文件系统缓存,即使在重启后也能快速重建。
- ???? 开箱即用的对JS,CSS,HTML,图像,文件资产等的支持- 无需安装插件 。
- needed在需要时使用Babel,PostCSS和PostHTML 自动 转换 模块 ,甚至是node_modules。
- 使用动态import()语句进行零配置 代码拆分 。
- ????内置支持热模块更换
- ????友好的错误记录经验-突出显示语法的代码框架有助于查明问题。
性能
我有动力去建造一个新的捆扎机的第一个原因是性能。 我已经开发了一些具有数千个模块的大型应用程序,并且对现有捆绑器的速度始终感到失望。 大型应用可能需要花费几分钟才能构建,这在开发过程中尤其令人沮丧。
许多捆绑器都专注于使用增量构建的快速重建性能,这很棒。 但是,初始构建性能对于开发和生产/ CI构建都非常重要。
Parcel通过使用辅助进程利用现代多核处理器并行地编译代码来解决此问题。 这样可以大大加快初始构建的速度。 它还具有文件系统缓存 ,该文件系统将每个文件的编译结果保存起来,以加快后续的启动速度。
零配置经验
我构建Parcel的第二个原因是为了减轻管理配置的痛苦。 其他大多数捆绑软件都是围绕带有许多插件的配置文件构建的,看到具有多达500行配置的应用程序只是为了使工作正常,这并不少见。
此配置不仅繁琐且耗时,而且很难正确设置,并且必须为每个应用程序重复配置。 通常,这可能会导致次优化的应用程序交付生产。
Parcel被设计为需要零配置 :只需将其指向您的应用程序的入口点即可,它做对了。 Parcel对JS,CSS,HTML,图像,文件资产等提供了开箱即用的支持-无需插件。
Parcel的零配置经验也超越了文件格式。 像巴贝尔,PostCSS和PostHTML 变换时包裹检测.babelrc,.postcssrc等,这甚至作品的第三方代码node_modules只,所以应用程序的作者并不需要知道该模块如何构建也将自动应用他们导入的每个模块,并且构建不会不必要地降低在每个文件上运行Babel的速度。
最后,还支持开箱即用的高级捆绑功能,例如代码拆分和热模块重新加载。 在生产模式下,Parcel会自动启用最小化功能,并在将来进行其他优化,例如摇树。
未来建筑
开始一个新项目的一个优势是,我能够为Parcel设计一种更现代的体系结构,该体系结构具有更高的可扩展性和灵活性,同时又需要用户零配置,并支持高级功能,例如代码拆分和热模块重新加载 。
大多数捆绑程序主要集中在JavaScript上,并在某种程度上支持其他格式。 例如,默认情况下,通常会将其他文件类型内联到JavaScript文件中,并使用其他插件和技巧再次将其提取到单独的文件中。
在Parcel中,任何类型的文件都可以是一等公民。 添加代表输入文件的新资产类型和将相似类型的资产组合到输出文件中的打包程序很容易。
例如,有一个CSS Asset类型可以分析并生成CSS代码,还有一个CSS Packager可以将CSS资产组合在一起成为最终的包。 JS,HTML等存在类似的类型。 这样,Parcel完全与文件类型无关 。
您可以在网站上阅读有关Parcel工作原理的更多信息。
试试看!
Parcel才刚刚起步,但是许多应用程序都可以使用零配置立即使用! 因此,请尝试一下-删除您的webpack / browserify配置,卸载那些插件,然后尝试使用Parcel。 ????
让我知道事情的后续! 您可以在Twitter上找到我@devongovett 。