使用 Surge、Now 和 Glitch 进行零配置部署
每个应用程序的生命周期中都会有那么一个时刻,它必须被推出巢穴,进入一个冷漠无情的其他人的机器世界,在那里“在我的机器上运行”无法保护它。好消息是,部署,至少就 MVP 而言,从未如此简单。我们说的是一条命令。我们说的是,.*rc
你几乎不需要熟悉任何文件或复杂的文档。我们说的是,做一个东西,按下按钮,分享它,然后再费力扩展。
我们讨论的是Surge、Now和Glitch:三个奇妙的工具,它们各有优势和特性,可以消除文本编辑器与世界之间的每一牛顿摩擦。
为了便于理解,我们将在本次导览中使用相同的两个存储库。同一个应用程序的两个版本,一个使用Next.js制作,另一个使用Create React App CLI 制作。两者都运行 React,但这些部署工具都不是 React 独有的。重要的是 Create React App 的build
脚本会生成一个静态应用程序,而 Next.js 没有这样的输出,并且依赖于更动态的服务器架构。您可以随意clone
在家中遵循它们,并将fork
它们变成您自己的。
值得一提的是,这些坏家伙都是免费的。其中两个有付费选项。
涌
Surge 只做一件事:提供静态应用。它使用 CDN 巧妙地实现了这一点,但这超出了我们的范围。像这样全局安装它:
$ npm i -g surge
让我们将它与我们的Create React App示例一起使用,并启动并运行。对于许多类型的部署,surge
从根目录运行易于记忆的命令就足够了,但 CRA 的start
脚本会启动一个在这里不起作用的开发服务器。相反,对于这个和您的所有 CRA 应用程序,您需要启动npm run build
后跟:
$ surge build
为了清楚起见,build
是包含我们想要提供的文件的目录。该参数可以是任何目录,因此不要将位置与动词混淆。第一次运行该命令时,您需要提供凭据。
就这样,几秒钟内即可上线。值得注意的是,您可以在调用后的交互式对话框中自定义部署的名称。还值得注意的是,每个应用程序都提供高级套餐,允许自定义域以及一些更高级的功能。
???? 任何尝试在这里部署 Next.js 的尝试都会以失败告终。Next 本质上不会生成静态站点,也不会与 Surge 一起使用。
现在
Now 是 Next.js 开发者开发的一款实时部署工具。好处是你知道它可以与 Next 配合使用。另一个好处是它可以与大量其他东西配合使用 — 包括 dockerized 应用程序。与 Surge 一样,它需要安装。他们有一个桌面应用程序,但出于我们的目的,我们将坚持使用该模块。
$ npm i -g now
从那里开始,只需now
从应用程序根目录中的命令行调用即可。首次运行时,您需要确认您的电子邮件,但无论您是在 Next 还是 CRA repo 上运行它,您都会有一个已部署的站点。
将 URL 复制到剪贴板可获得奖励积分。????
一个奇怪的细微差别:如果您now
从 Create React App 项目的根目录运行,它将运行,但您得到的是应用程序的开发服务器渲染。它可以工作,但尚未优化。cd
进入您的build
目录并调用now
以部署更静态、更快速、更合法的应用程序版本。
关于 Now 的最后一件事:每个部署在免费层上的网站都允许用户/_src
在浏览器中附加 URL 以查看源代码。但等等,还有更多。
从源视图中,任何用户都可以突出显示代码片段,浏览器中的地址栏将更新为指向突出显示源的持久、可共享锚点。高级用户可以选择退出此功能(以及其他好处),但这是一个非常不错的功能。
毛刺
我们最后提供的是一只有点奇怪的鸟。Glitch(原名 Gomix;原名 HyperDev)确实是一个易于部署的平台,但这太低估了它的价值。除了提供应用程序的机制之外,它几乎是一个完整的 IDE,允许实时开发、协作和部署。想想 Google Docs 的全栈 JS 编码、始终在线、热重载、自动保存 - 以及美学……完美。
是的,您可以在其界面上从头编写代码。但我们确实需要导入代码的能力才能真正发挥作用。没问题。使用 GitHub登录网站后,跳过此命令行并转到浏览器的地址栏。
使用以下地址和你的 repo 详细信息:
https://glitch.com/edit/#!/import/github/[YourOrg]/[YourRepo]
使用我们的 CRA repo 进行操作,您就会获利。它可以运行。它可以编辑。全部九个。当然,它在开发模式下运行,但是 ¯\_(ツ)_/¯。alligatorio/some-gators-next
另一方面,尝试使用它,您会得到一个错误。
将您的start
脚本更改为
'next build && next start'
它会知道如何处理您的应用。实时结果。在部署中。
值得注意的是:Glitch 目前没有高级选项,您可以通过用户界面将更改推送回 GitHub。它们将应用于名为 的分支glitch
。
???? 我们只是触及了 Glitch 功能的皮毛。请继续关注,并考虑将其用于您的下一次黑客马拉松。