コンテンツにスキップ

Templates

このコンテンツはまだ日本語訳がありません。

模板和堆栈

使用 create-remix 生成新项目时,您可以选择模板或堆栈来快速启动和运行。模板是启动和运行的最小起点。堆栈是更完整且更接近生产就绪架构的模板(可能包括测试、数据库、CI 和部署配置等方面)。

模板

如果您运行create-remix而不提供--template选项,您将使用Remix App Server获得一个基本模板。

Terminal window
npx create-remix@latest

如果您不想使用 TypeScript,您可以安装更简单的 Javascript 模板:

Terminal window
npx create-remix@latest --template remix-run/remix/templates/remix-javascript

如果您只是第一次尝试 Remix,那么这里是一个很好的起点。您可以随时自行扩展此起点,或稍后迁移到更高级的模板。

官方模板

如果你想要对服务器有更好的控制权,或者希望部署到非节点运行时(例如 ArcCloudflareDeno),那么你可以尝试 Remix 存储库中的 官方模板 之一:

Terminal window
npx create-remix@latest --template remix-run/remix/templates/cloudflare
npx create-remix@latest --template remix-run/remix/templates/cloudflare-workers
npx create-remix@latest --template remix-run/remix/templates/express
npx create-remix@latest --template remix-run/remix/templates/remix
npx create-remix@latest --template remix-run/remix/templates/remix-javascript
## SPA Mode
npx create-remix@latest --template remix-run/remix/templates/spa
## Classic Remix Compiler
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/arc
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/cloudflare-pages
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/cloudflare-workers
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/deno
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/express
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/fly
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/remix
npx create-remix@latest --template remix-run/remix/templates/classic-remix-compiler/remix-javascript

第三方模板

一些托管服务提供商维护自己的 Remix 模板。有关更多信息,请参阅下面列出的官方集成指南。

示例

我们还提供了 [社区驱动的示例存储库][示例],每个示例展示了不同的 Remix 功能、模式、工具、托管服务提供商等。您可以以类似的方式使用这些来安装工作示例:

Terminal window
npx create-remix@latest --template remix-run/examples/basic

堆栈

当模板更接近于可用于生产的应用程序,以至于它提供有关 CI/CD 管道、数据库和托管平台的意见时,Remix 社区将这些模板称为堆栈

有几种官方提供的堆栈,但您也可以创建自己的堆栈(阅读下文了解更多信息)。

阅读功能公告博客文章在 YouTube 上观看 Remix Stacks 视频

官方堆栈

官方堆栈已准备好生产应用程序所需的常用内容,包括:

  • 数据库
  • 自动部署管道
  • 身份验证
  • 测试
  • Linting/Formatting/TypeScript

剩下的就是一切准备就绪,您可以开始使用 Remix 构建任何令人惊叹的 Web 体验。以下是官方堆栈:

  • Blues Stack:使用长期运行的 Node.js 服务器和 PostgreSQL 数据库部署到边缘(分布式)。适用于为数百万用户提供服务的大型快速生产级应用程序。
  • Indie Stack:使用持久性 SQLite 数据库部署到长期运行的 Node.js 服务器。此堆栈非常适合您控制的动态数据网站(博客、营销、内容网站)。它也是 MVP、原型和概念验证的完美、低复杂度引导程序,以后可以轻松更新到 Blues 堆栈。
  • Grunge Stack:部署到运行 Node.js 的无服务器函数,使用 DynamoDB 实现持久性。适用于想要在 AWS 基础设施上部署为数百万用户提供服务的生产级应用程序的人员。

您可以在运行create-remix时提供--template选项来使用这些堆栈,例如:

Terminal window
npx create-remix@latest --template remix-run/blues-stack

是的,这些都是以音乐流派命名的。🤘 继续摇滚吧。

社区堆栈

您可以浏览 GitHub 上的社区堆栈列表

可以在运行create-remix时将 GitHub 用户名/repo 组合传递给--template选项来使用社区堆栈,例如:

Terminal window
npx create-remix@latest --template :username/:repo

如果您想与社区分享您的堆栈,请不要忘记使用 remix-stack 主题进行标记,以便其他人可以找到它 - 是的,我们建议您用音乐子流派来命名您自己的堆栈(不是摇滚而是独立!)。

其他信息

私有模板

如果您的模板位于私有 GitHub 存储库中,则可以通过 --token 选项传递 GitHub 令牌:

Terminal window
npx create-remix@latest --template your-private/repo --token yourtoken

[令牌只需要repo访问权限] repo_access_token

本地模板

您可以向 --template 选项提供磁盘上的本地目录或 tarball,例如:

Terminal window
npx create-remix@latest --template /my/remix-stack
npx create-remix@latest --template /my/remix-stack.tar.gz
npx create-remix@latest --template /my/remix-stack.tgz
npx create-remix@latest --template file:///Users/michael/my-remix-stack.tar.gz

自定义模板提示

依赖版本

如果你将 package.json 中的任何依赖项设置为 *,Remix CLI 会将其更改为已安装的 Remix 版本的 semver 插入符号:

"remix": "*",
"remix": "^2.0.0",

这样您就不必定期将模板更新到该特定软件包的最新版本。当然,如果您希望手动管理该软件包的版本,则不必输入*

自定义初始化

如果模板根目录下有一个 remix.init/index.js 文件,那么在生成项目并安装依赖项后,该文件将被执行。这让您有机会在模板初始化过程中执行任何您想做的事情。例如,在 blues 堆栈中,app 属性必须是全局唯一的,因此我们使用 remix.init/index.js 文件将其更改为为项目创建的目录的名称 + 几个随机字符。

您甚至可以使用 remix.init/index.js 向开发人员询问更多问题以获得其他配置(使用类似 inquirer 的内容)。有时,您需要安装依赖项才能执行此操作,但这些依赖项仅在初始化期间有用。在这种情况下,您还可以创建带有依赖项的 remix.init/package.json,Remix CLI 将在运行脚本之前安装这些依赖项。

运行初始化脚本后,remix.init 文件夹会被删除,因此您不必担心它会弄乱完成的代码库。

请注意,消费者可以选择不运行 remix.init 脚本。若要手动执行此操作,他们需要运行 remix init