前言在40多个Beta和ReleaseCandidate版本发布后,我们很高兴地宣布Snowpack2.0今天全面上市。Snowpack2.0是现代网络的构建系统。其特点包括:启动时间小于50毫秒,在大型项目中不影响速度。没有包装开发和生产构建包装。内置支持TypeScript、JSX和CSS模块等功能。适用于React、Preact、Vue、Svelte和所有您喜欢的库。创建Snowpack应用程序(CSA)入门模板:https://www.snowpack.dev/#create-snowpack-app-(csa)#installwithnpmnpminstall--save-devsnowpack#installwithyarnyarnadd--devsnowpackRoadtoSnowpack2.0Snowpack1.0YesDesignedfor一项简单的任务:安装npm软件以直接在浏览器中运行。其背后的想法是,JavaScript捆绑包是开发过程中唯一需要捆绑器的东西;如果我们可以消除这个要求并消除对捆绑器的需求,我们就可以加快每个人的Web开发速度。Snowpack取得了巨大的成功。成千上万的开发人员开始使用Snowpack安装他们的依赖项,简化了他们在构建网站时使用的工具链。一夜之间,一个更快、更轻量级的开发环境出现在了人们的面前。Snowpack2.0是为这个新的Web开发时代设计的构建系统。Snowpack利用本机ES模块(ESM)支持将构建的文件直接提供给浏览器,从而无需在开发环境中使用捆绑器。它不仅仅是一个更快的工具,它还是一个全新的系统和构建网络的方式。O(1)构建系统的兴起捆绑是一个O(n)过程。当您更改文件时,您不能只重建文件。您通常需要为几个相关文件重建和重新打包应用程序中的整个内容块,以便正确完成更改过程。Snowpack是一个复杂度为O(1)的构建系统。该术语最初由IvesvanHoorne创造,它完美地体现了我们对Web开发未来的愿景。每个用Snowpack构建的文件都可以表示为一个函数:build(file)=>result。在开发过程中更改文件时,重建该文件就足够了。与传统的打包开发方法相比,它有几个优点:O(1)构建速度更快。O(1)构建是可预测的。O(1)构建很容易推理和配置。项目大小不会影响开发期间的构建时间。单个文件可以更好地缓存。最后一点很关键:每个构建的文件都是单独缓存的,可以随时重复使用。如果您从不更改文件,则永远不必重建它。dev:更快的开发环境只需运行snowpackdev来启动一个新的Web开发环境,您首先会注意到O(1)构建工具链的速度有多快。Snowpack在不到50毫秒内启动。这里的单位是正确的:不超过50毫秒。因为没有打包工作要启动,服务器可以立即启动。首次加载页面时,Snowpack会构建您请求的第一批文件,然后缓存它们以备将来使用。即使您的项目包含一百万个不同的文件,Snowpack也只会构建加载当前页面所需的文件。这就是为什么Snowpack总是跑得很快的原因。snowpackdev包括一个开箱即用的开发服务器,以及一组熟悉的功能:在构建脚本中,您可以链接您最喜欢的构建工具。https://www.snowpack.dev/#build-scripts在Snowpack中,您可以将每个构建表示为线性“输入->构建->输出”工作流。这允许Snowpack将文件拉入或拉出任何现有UNIX-yCLI工具的管道,而无需专门的插件生态系统支持。//snowpack.config.json{"scripts":{//Pipeevery"*.css"filethroughthePostCSSCLI//stdin(sourcefile)>postcss>stdout(buildoutput)"build:css":"postcss",}}如果你使用这种格式应该熟悉package.json中的“脚本”配置。我们喜欢在没有不必要的插件系统的情况下直接使用CLI的简单性。我们希望这种模式提供类似的直观设计。如果您想更好地控制自己的构建(或想编写自己的构建工具),Snowpack还支持第三方JavaScript插件https://www.snowpack.dev/#build-plugins查看我们的文档以了解更多信息构建您自己的关于定义构建的更多信息https://www.snowpack.dev/#build-scriptsbulid生产打包明确地说,Snowpack不反对在生产中打包。我们实际上推荐这种方法。打包过程中的缩小、压缩、去除无用代码、网络优化,可以让您的网站运行速度更快,给用户更好的体验;这是所有构建工具的最终目标。Snowpack将打包视为最后一步,仅用于生产的构建优化。通过将打包放在最后一步,您不会在同一个巨大的配置文件中混合构建逻辑和打包逻辑。相比之下,您的打包程序可以获取构建的文件并专注于它最擅长的事情:打包。Snowpack为Webpack和Parcel维护了一套官方插件。您可以选择自己喜欢的并运行snowpackbuild来构建生产站点。//snowpack.config.json{//OptimizeyourproductionbuildswithWebpack"plugins":[["@snowpack/plugin-webpack",{/*...*/}]]}不想用也可以捆绑器。Snowpack的默认构建将为您提供一个解压缩的网站,该网站可以正常运行。这就是Snowpack项目从一开始就坚持的理念:想用packer就用,不想用就不用。没有硬性要求。立即试用Snowpack我们很高兴与您分享这一切,立即下载Snowpack并体验Web开发的未来。npmisnowpack@latest--save-dev如果您已经安装了Snowpack应用程序,那么Snowpack2.0将引导您更新那些过时的配置。Snowpack的原始包安装程序仍然可以正常工作,现在有了新的开发和构建命令,Snowpack甚至可以为您管理Web包。查看我们的文档站点以了解更多信息https://www.snowpack.dev/创建Snowpack应用程序开始使用Snowpack的最简单方法是使用创建Snowpack应用程序(CSA)模板。CSA使用预配置的Snowpack支持的开发环境自动为您初始化入门应用程序。npxcreate-snowpack-appnew-dir--template[SELECTFROMBELOW][--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在这里你可以查看snowpack社区提供的内容模板:https://github.com/pikapkg/create-snowpack-app感谢80多位贡献者为新版本付出的辛勤劳动,祝编程愉快!
