中山公众号开发,中山小程序开发,中山企业官网开发,中山软件开发,中山APP开发
公司动态
COMPANY DYNAMIC
行业资讯
COMPANY DYNAMIC
扫一扫出方案
再也不需要打包器!Snowpack 2.0 发布,让打包速度快 10 倍的神奇工具
点击数:
2020-05-29 10:21:13

在发布了超过 40 个 Beta 版本和候选版本之后,我们很高兴地宣布,Snowpack 2.0 今天正式发布了。

Snowpack 2.0 是一套为现代 Web 打造的构建系统。其特性包括:

  • 启动时间不到 50ms,在大型项目中速度也不会打折扣。

  • 无打包开发与生产构建打包。

  • 内置对 TypeScript、JSX 和 CSS 模块等特性的支持。

  • 可与 React、Preact、Vue、Svelte 和所有你喜欢的库一起使用。

  • Create Snowpack App(CSA)入门模板

复制代码
# install with npmnpm install --save-dev snowpack# install with yarnyarn add --dev snowpack

迈向 Snowpack 2.0 之路

Snowpack 1.0 是针对一个简单任务而设计的:安装 npm 软件包以直接在浏览器中运行。它背后的理念是,JavaScript 包是在开发过程中唯一 需要 使用打包器(bundler)的东西;只要能去掉这个要求,不再需要打包器,我们就能加快所有人的 Web 开发速度。

结果 Snowpack 大获成功。成千上万的开发人员开始使用 Snowpack 来安装他们的依赖项,简化了构建网站时使用的工具链。一夜之间,一种速度更快,更轻量级的开发环境呈现在人们面前。

Snowpack 2.0 则是为了这个 Web 开发的新时代而设计的构建系统。Snowpack 利用原生 ES 模块(ESM)支持,将构建好的文件直接提供给浏览器,这样你的开发环境就不再需要打包器了。它不仅是一种速度更快的工具,更是一种全新的 Web 构建系统和构建方法。

O(1) 构建系统的兴起

再也不需要打包器!Snowpack 2.0发布,让打包速度快10倍的神奇工具

打包(bundling)是一种复杂度为 O(n) 的过程。当你更改一个文件时,你不能只重建这个文件。你往往需要针对多个相关文件,重建并重新打包应用程序中的一整块内容,这样才能正确完成更改过程。

Snowpack 则是一个复杂度为 O(1) 的构建系统。这个术语最初是由 Ives van Hoorne 提出的,它完美地体现了我们的 Web 开发未来愿景。用 Snowpack 构建的每个文件都可以表示为一个函数:build(file) => result。在开发过程中更改某个文件时,只需重建这一个文件就够了。

与传统的打包开发方法相比,它有诸多优点:

  • O(1) 构建速度更快。

  • O(1) 构建是可预测的。

  • O(1) 构建易于推理和配置。

  • 项目规模不会影响开发期间的构建时间。

  • 单个文件能更好地缓存。

最后一点很关键:每个构建的文件都会单独缓存,可随时重用。如果你从不更改某个文件,那就永远用不着重新构建它了

dev:更快的开发环境

再也不需要打包器!Snowpack 2.0发布,让打包速度快10倍的神奇工具

运行 snowpack dev 就可以启动新的 Web 开发环境了,你会注意到的第一件事,就是 O(1) 构建工具链的速度竟然如此之快。Snowpack 的启动时间不到 50 毫秒。这里的单位没写错:是不超过 50 毫秒。

因为无需启动打包工作,所以服务器可以立即启动。在首次加载页面时,Snowpack 会构建你请求的第一批文件,然后将它们缓存起来以备将来使用。就算你的项目中包含一百万个不同的文件,Snowpack 也只会构建加载当前页面所需的那些文件而已。这就是为什么 Snowpack 能够一直提供飞快的运行速度。

snowpack dev 包括一个开箱即用的开发服务器,和一系列熟悉的功能:

  • TypeScript 支持

  • JSX 支持

  • 热模块更换(HMR)

  • 导入 CSS 和 CSS 模块

  • 导入图像和其他资产

  • 自定义路由

  • 代理请求

自定义构建

使用 Snowpack 内置的构建脚本,你就可以连接自己喜欢的那些构建工具。

在 Snowpack 中,你可以将每个构建表示为一个线性的 " 输入 -> 构建 -> 输出 " 工作流程。这样一来,Snowpack 便可以将文件纳入任何现有的 UNIX-y CLI 工具的管道,或者从管道中提取出来,而无需专门的插件生态系统支持。

复制代码
// snowpack.config.json{"scripts": {// Pipe every "*.css" file through the PostCSS CLI// stdin (source file) > postcss > stdout (build output)"build:css": "postcss",}}

如果你用过 package.json 的“scripts”配置,应该会很熟悉这种格式。我们很喜欢这种直接使用 CLI,而无需非必要插件系统的简单方法。我们希望这种模式能提供与之类似的直观设计。

如果你想更好地掌控自己的构建(或者想编写自己的构建工具),Snowpack 还支持第三方 JavaScript 插件。可以查看我们的文档以了解有关自定义构建的更多信息。

bulid:为生产环境打包

再也不需要打包器!Snowpack 2.0发布,让打包速度快10倍的神奇工具

需要明确的是,Snowpack 并不反对生产环境中的打包。实际上我们推荐这种方法。在打包过程中的文件缩小、压缩、移除无用代码和网络优化等操作,都能让你的站点运行得更快,给用户带来更好的体验;这也是所有构建工具的终极目标。

Snowpack 将打包视为一种只用在最后一步,且只针对生产环境的构建优化过程。将打包放在最后一步后,你就不会将构建逻辑和打包逻辑混在同一个巨大的配置文件中了。相比之下,你的打包器可以获取已构建好的文件,并专注于它最擅长的工作:打包。

Snowpack 维护了一套针对 Webpack 和 Parcel 的官方插件。你可以选择自己喜欢的那一款,然后运行 snowpack build 来构建生产站点。

复制代码
// snowpack.config.json{// Optimize your production builds with Webpack"plugins": [["@snowpack/plugin-webpack", {/* ... */}]]}

如果你不想使用打包器也是可以的。Snowpack 的默认构建将为你提供一个没有打包过的网站,它运行起来也不会有任何问题。这就是 Snowpack 项目从一开始就坚持的理念:你想用打包器的时候才会用它,不想用的时候就可以不用,没有硬性要求

现在就尝试 Snowpack

我们很高兴能和大家分享所有这些内容,现在就下载 Snowpack,体验 Web 开发的未来吧。

复制代码
npm i snowpack@latest --save-dev

如果你已经装过 Snowpack 应用程序,那么 Snowpack 2.0 会引导你更新那些过时的配置。Snowpack 原来的软件包安装程序仍然可以正常运行,而且现在有了新的 dev 和 build 命令,Snowpack 甚至可以为你管理 Web 软件包。

请查看我们的文档站点以了解更多信息

https://www.snowpack.dev/

创建 Snowpack 应用

入门 Snowpack 的最简单方法是使用 Create Snowpack App(CSA)模板。CSA 使用预先配置的,由 Snowpack 驱动的开发环境为你自动初始化一个入门应用程序。

复制代码
npx create-snowpack-app new-dir --template [SELECT FROM BELOW] [--use-yarn]

Snowpack 的模板包括:

  • @snowpack/app-template-blank

  • @snowpack/app-template-react

  • @snowpack/app-template-react-typescript

  • @snowpack/app-template-preact

  • @snowpack/app-template-svelte

  • @snowpack/app-template-vue

  • @snowpack/app-template-lit-element

  • @snowpack/app-template-11ty

感谢超过 80 位贡献者为新版做出的努力,编程愉快!

原文链接:

https://www.snowpack.dev/posts/2020-05-26-snowpack-2-0-release/

节点互动(广东)科技有限公司一家专注于 APP开发 + 小程序开发 + 微信开发 + 系统开发 + 网站开发 的专业互联网应用服务提供商。5年实战开发经验,高校合作基地,多年行业深耕经验,助力传统行业快速转型,为众多企业提供创新性互联网应用产品。

 


推荐文章
数仓数据质量管理,需要注意哪些问题?
接着上次聊的企业数仓数据质量管理流程,我们来详细聊聊数仓数据质量管理的各个环节我们都该考虑哪些问题?做哪些事情?怎么做?一、数据资产等级划分1. 等级定义根据“当数据质量不满足完整性、准确性、一致性、及时性时,对业务的影响程度大小”来划分数据的资产等
5G人才大战打响,vivo教会行业如何培养“千里马”
疫情之下,vivo依旧凶猛。  IDC最新数据显示,今年第一季度,vivo以全球第一的销量增速跃升为全球智能手机市场TOP 5品牌;而另一大调研机构Strategy Analytics发布的报告显示,vivo成功晋升为全球5G手机市场TOP 3品牌,
你知道,微信小程序开发有那些优点吗
我们聊天小程序是什么? 它是一个超级APP,基于WeChat平台无需下载就可以满足很多APP满足大家的需求,正因为如此,很多APP也在WeChat中开发了自己的小程序,可以让用户更方便的使用,想必大家对WeChat小程序开发应该是比较陌生的,没关系,
如何开展支付认证的智能路由体验设计?
本文就智能路由中的体验设计进行了详细阐述,旨在提高体验设计效率,与大家分享。支付认证方式是支付业务中的核心部分,而智能路由方式则是当下支付认证方式表达的重要形态。在支付产品设计当中,虽然最终银行向用户展现的就是一种认证方式,但是背后涉及的开发算法、业
拍一拍:站在“已读”的对立面,用“意义不明”建立社交的缓冲区
微信“拍一拍”功能的上线引起了广泛的讨论,有人觉得这个功能很可爱,有人觉得很无聊。本文作者从两个方面,对微信“拍一拍”提出思考,希望对你有帮助。近日,微信上线了“拍一拍”功能。用户只需要双击头像便会产生振动反馈,并在聊天记录中提示“你拍了拍xx”。功
APP产品分析报告 | 叮咚买菜,后浪逆袭的背后逻辑
疫情之下,生鲜电商行业再次爆发。其中,叮咚买菜表现尤为出色,与背靠阿里的盒马和腾讯大力支持的每日优鲜三足鼎立。是什么让这个背景相对薄弱的后起之秀迅速崛起,一路逆袭,在极短时间内与各路豪门玩家平分秋色?整个行业的发展现状又是怎样的?本文通过多个角度,对
Fastjson 被曝出“高危”远程代码执行漏洞
05 月 28 日,360 网络安全响应中心(360-CERT)发布“Fastjson 远程代码执行漏洞通告”。通告称, Java 库 fastjson <= 1.2.68 版本存在远程代码执行漏洞,漏洞被利用可直接获取服务器权限。3
“四个维度” 讲明白什么是微服务!
一、从康威定律说起关于微服务的理论思想,我们可以从一个著名的定律说起---康威定律,康威定律是一个叫梅尔文·康威的程序员,他在1968年发布了一篇文章,文中论述了设计系统的组织与系统本身的关系,并列举了各个不同行业的真实案例,最后得出了结论:“oga
万丈高楼平地起:Walmart 如何打造平台团队
每一款软件,都是从一行代码开始的,并以此为基础发展起来的。 Walmart 网站亦不例外。在过去的几年里,我们推出了一系列的功能,我们的销售额以惊人的速度增长。仅就用户的交易流(购物车和结账)而言,我们工程团队的规模成倍增长,我们
披着微信外衣的APP?小程序表示不服
最开始接触小程序的时候,大家应该都会有类似的疑惑,小程序是什么?小程序与APP究竟差别在哪?我究竟能用小程序做些什么?现在童鞋们都搬好小板凳坐好,小编科普课堂开课啦!小程序并不小! “小程序对我而言就是临时APP”、“我刚刚用的就是小程序吗
在线客服系统