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

目录
相关文章
|
6月前
|
自然语言处理 编译器 C语言
【C++ 20 新特性】参数包初始化捕获的魅力 (“pack init-capture“ in C++20: A Deep Dive)
【C++ 20 新特性】参数包初始化捕获的魅力 (“pack init-capture“ in C++20: A Deep Dive)
101 0
|
前端开发
vuecli3打包报警告:chunk chunk-common [mini-css-extract-plugin] Conflicting order.
vuecli3打包报警告:chunk chunk-common [mini-css-extract-plugin] Conflicting order.
326 0
vuecli3打包报警告:chunk chunk-common [mini-css-extract-plugin] Conflicting order.
|
2月前
|
JavaScript 前端开发
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
如何使用Vue和Element UI配合Node.js及multiparty模块实现图片上传并反显的功能,包括前端的Element UI组件配置和后端的Node.js服务端代码实现。
37 1
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
|
6月前
|
存储 API
使用Webpack的module.hot API来定义模块的热替换
使用Webpack的`module.hot` API实现模块热替换,简单示例展示如何在`myModule`变化时执行回调。`module.hot.accept`接收模块路径和回调函数,当模块或其依赖变更时触发回调,用于执行更新逻辑。可通过`module.hot.data`保存和恢复状态以实现热替换时保持应用程序的状态。
通过patch-package创建补丁修改node_modules依赖下的源码
通过patch-package创建补丁修改node_modules依赖下的源码
214 0
|
6月前
|
JavaScript 开发者 内存技术
nvm 全名 node.js version management 的优缺点,以及常用命令
NVM(Node Version Manager)是一个用于管理Node.js版本的工具。它可以让用户在同一台机器上安装和切换多个版本的Node.js,这对于处理项目的依赖关系和确保项目能够在特定的Node.js版本上运行非常有帮助。以下是NVM的优缺点: 优点: 多版本支持:NVM允许用户在同一台机器上安装多个Node.js版本,方便处理项目的依赖关系。 版本切换:NVM允许用户在不同的项目之间切换Node.js版本,可以根据项目需求选择合适的版本。 版本管理:NVM提供了命令来列出已安装的Node.js版本,并能够轻松卸载不再需要的版本,有助于释放磁盘空间并保持系统的整洁。 全局安装权
183 1
|
安全 数据安全/隐私保护
简单讲解一下什么是ATT&CK框架
简单讲解一下什么是ATT&CK框架
454 1
|
存储 前端开发 Java
Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?(下)
Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?(下)
84 0
|
存储 XML 前端开发
Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?(上)
Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?(上)
120 0
node 版本与npm版本不相匹配
node 版本与npm版本不相匹配
1088 0
node 版本与npm版本不相匹配