smalljs$mol搜索⌘ K文档演练场对比生态系统关于ZH
部署Getting Started介绍心智模型快速上手从 TypeScript 到 view.tree项目结构工具链Essentials安装视图状态与响应式路由渲染测试部署故障排查Data数据获取数据模式Giper BazaMore展示来自 React、Vue 和 Svelte食谱Advanced插件模块元数据离线幽灵视图About常见问题团队发布API$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

部署

构建好的 $mol 应用就是一个静态文件目录。没有服务要跑,没有 Node 进程要守着,也没有适配器要挑:能托管一个目录的地方,就能托管这个应用。

你部署的到底是什么

构建把所有东西写进模块里的 -/ 目录:1my/hello/-/2├── index.html 按部署路径重写过3├── web.js 整个应用,一个文件4├── web.css5├── web.locale=en.json 每种语言一个6├── manifest.json7└── … `deploy` 指令拷进来的任何东西这个目录就是网站。用任何静态托管把它发出去,应用就跑起来了。my/hello/ 里的其他东西都是源码,而 -/ 是生成的:工作区的 .gitignore 忽略 -*,所以构建产物从不进入项目自己的历史。它是从部署分支上网的。

最短的版本

脚手架会写好工作流,所以新项目一推送就发布:1npx create-view-tree-lsp my/hello2git push.github/workflows/deploy.yml 构建模块,并把 my/hello/-/ 推到 gh-pages 分支。只要 Settings → Pages → SourceDeploy from a branch 并选中 gh-pages,GitHub 就会提供这个分支——而对已经有该分支的仓库来说,这正是默认值。如果地址返回 404,先查这一项。之后网站就住在 https://<user>.github.io/<repo>/

工作流到底做了什么

两个 action 撑起全部,各自只要几个输入:1- uses: hyoo-ru/mam_build@master22 with:3 package: "my/hello" # 要构建的目录,相对工作区4 modules: "app" # 其中的哪些模块5 6- uses: hyoo-ru/gh-deploy@v4.4.17 if: github.ref == 'refs/heads/main'8 with:9 folder: "my/hello/app/-"mam_build 在你的包周围铺开 MAM 工作区,把代码里的 $name 记号解析成存放它们的仓库,然后构建。它不需要 lockfile,也不需要 npm install 这一步:依赖清单就是 .meta.tree 里的登记表, 项目结构已经讲过。gh-deploy 把构建好的目录提交到 gh-pagestarget-folder 让它落在子目录而不是根目录——分支预览就是这么来的:1- name: Deploy feature branch2 if: startsWith(github.ref, 'refs/heads/feature/')3 uses: hyoo-ru/gh-deploy@v4.4.14 with:5 folder: "my/hello/app/-"6 target-folder: ${{ github.ref_name }}于是每个 feature/* 分支在同一个 Pages 站点上都有自己的地址,而 delete 触发器会在分支消失时清掉那个目录。

部署离不开的一个文件

在 GitHub 上编辑此页这有帮助吗?上一页测试下一页故障排查
本页内容你部署的到底是什么最短的版本工作流到底做了什么部署离不开的一个文件必须待在站点根目录的文件静态托管上的深链接推送前先看一眼不止 GitHub Pages
Type to search the documentation.