Parcel v1.10.0发布,默认支持 Babel 7、Flow、Elm等

简介: 我们一起来看看有哪些新的变化

原文作者:devongovett

译者:UC 国际研发 Jothy


我们一起来看看有哪些新的变化:

支持 Babel 7 - Parcel 现在支持开箱即用的 Babel 7 插件,同时也支持 Babel 6。 此外,我们现在会为您自动安装正确版本的 Babel,以及您开发时缺少的任何插件!

自动支持 Flow - Parcel 会自动检测 Flow 类型并在构建时从 JS 中剥离它们,就像我们已经为 TypeScript 做的那样。 无需配置 Babel - 它就能生效!

支持 Elm - 现在支持 Elm 开箱即用! 如果需要,我们会自动为您安装 Elm 工具链,并为您初始化 Elm 项目。 生产版本默认包含完整的优化支持。

支持内联脚本和样式 - Parcel 会检测内联样式属性,以及HTML 中的

HTML 包加载器 - 您现在可以使用 import('./ some.html')语法,在运行时异步加载外部 HTML 文件到你的 JavaScript 中。

支持 JSON LD - Parcel 现在可以检测出 HTML 中引入的 JSON LD 文档类型 assets,并将它们包含在构建中。

加载现有的 source maps - Parcel 现在可以从被导入的预编译 JavaScript 文件中加载被引用的现有 source maps,因此您可以使用真正的原始源进行调试。

非常感谢为此次发布做出贡献的所有人!

Babel 7

Babel 7 开发已经很长时间了,几周前它终于发布了正式版。 Parcel v1.10.0 现在支持开箱即用的 Babel 7,同时保留对使用 Babel 6 的现有项目的支持。 当您切换到 Babel 7 时,您应该能看到更快的构建性能,以及对新的语言特性提议的支持。

对于许多 Parcel 项目而言,根本不需要 .babelrc,因为 Parcel 自动支持使用 babel-preset-env 编译现代 JS,以及自动支持 JSX,现在也支持 Flow(见下文)。 对于那些项目,您根本不需要做任何事情来开始使用 Babel 7 - Parcel 将自动为您完成!

在使用 Babel 6 的 .babelrc 的现有项目中,我们将继续正常使用 Babel 6。 如果你的 package.json 中没有对 babel-core 的明确依赖,那么将自动为你安装一个。

如果你想升级到 Babel 7,你需要在你的 package.json 上添加对 @babel/core 的依赖,并删除对 babel-core 的依赖,并调整你的 .babelrc 以指向 Babel 7 插件。之后,Parcel 将自动使用 Babel 7 来构建您的代码。

对于新项目,当您创建 .babelrc 文件时,我们将自动检测插件是否依赖于 Babel 6 或 7,并自动将 babel-core 或 @babel/core 安装到您的项目中。

如果尚未安装,Parcel 现在还将自动安装 .babelrc 中指定的 Babel 插件。现在,您只需要为项目添加一个新插件,就可以将插件添加到 .babelrc 中,Parcel 会为您安装它!

Automatic Flow Support

如果您在 JavaScript 中使用 Flow 类型系统,则通常需要添加 Babel 插件以在构建过程中删除类型。 有了 Parcel v1.10.0,这将自动为您完成。

Parcel 会自动检测顶部带有 @flow 注释的文件,并为您删除类型。 这意味着在您的应用中管理的手动配置更少 - 更容易上手和维护!

Elm Support

Elm 是一种编译为 JavaScript 的函数式编程语言,专为构建 Web 应用程序而设计。 Parcel v1.10.0 现在支持 Elm 开箱即用,零配置!

当检测到 .elm 文件时,如果您尚未安装 elm 编译器工具链,则会自动为您安装 elm 编译器工具链,如果需要,使用 elm.json 文件初始化项目,并将文件编译为 JavaScript。 它会在您更改文件时自动重新加载页面,以便快速开发。

当您准备好投入生产时,Parcel 会为您处理压缩和优化设置。 由于 Elm 没有副作用,因此可以自动启用一些高级优化,从而生成的代码比 JavaScript minifier 通常生成的小得多。

Inline script and style support

Parcel 现在可以处理 HTML 中的内联样式属性,以及内联

image.png

您现在也可以在 HTML 中使用内联的 compile-to-JS(例如 CoffeeScript 或 TypeScript)或者编译为 CSS(例如 SASS 或 Stylus )语言。 只需使用 type 属性:

image.png

如果你想使用,你可以在github上获取到:

https://github.com/parcel-bundler/parcel

英文原文:

https://medium.com/@devongovett/parcel-v1-10-0-babel-7-flow-elm-and-more-c20736553573

目录
相关文章
|
Kubernetes 网络协议 Java
程序技术好文:记一次k8spod频繁重启的优化之旅
程序技术好文:记一次k8spod频繁重启的优化之旅
936 0
|
11月前
|
存储 人工智能 监控
RFID为化工厂人员安全提供有力保障
RFID技术通过实时定位、动态追踪与智能管控,为化工厂人员安全提供全方位保障。应用于人员定位监控、出入管控、考勤管理及紧急疏散等场景,具备抗干扰、非接触识别、高实时性等优势,助力化工厂构建智能安全防线,推动安全管理向主动预防转型。
|
网络性能优化 调度
软件项目常见风险及其预防措施
(1)合同风险 签订的合同不科学、不严谨,项目边界和各方面责任界定不清楚等是影响项目成败的重大因素之一。 预防这种风险的办法是项目建设之初项目经理就需要全面准确地了解合同各条款的内容、尽早和合同各方就模糊或不明确的条款签订补充协议。
7592 0
|
SQL 关系型数据库 数据库
|
应用服务中间件 nginx
Nginx服务器的反向代理proxy_pass配置方法讲解
 Nginx服务器的反向代理proxy_pass配置方法讲解 这篇文章主要介绍了Nginx服务器的反向代理proxy_pass配置方法讲解,包括经常被提到的url的/问题的相关说明,需要的朋友可以参考下 就普...
6206 0
|
人工智能 数据可视化
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
2516 1
|
NoSQL 关系型数据库 MySQL
使用redis( RedisTemplate )中的BitMap 记录用户签到情况
使用redis( RedisTemplate )中的BitMap 记录用户签到情况
926 0
|
资源调度 5G 测试技术
网络切片技术 |带你读《5G无线网络规划与设计》之五
术语“切片”在工业和学术界用于对几乎任何类型的(网络)资源进行切片。在 5G 系统中,切片特指针对构建 PLMN 的资源。但是,PLMN 网络切片部署时可以使用其他领域内的切片技术,例如传输网中的切片技术等。
10775 6
网络切片技术 |带你读《5G无线网络规划与设计》之五