Skip to main content

什么是 squarecloud.ignore 文件?

squarecloud.ignore 文件列出了在上传或 commit 应用时需要排除的文件和文件夹。Square Cloud CLI(upload、commit 和 zip)和 Square Cloud 的 VS Code 扩展读取同一个文件,使用相同的规则和相同的默认值,因此两者打包项目的方式完全一致。 它使用 .gitignore 语法:支持注释、通配符、仅匹配文件夹和仅匹配根目录的规则,以及用 ! 重新包含文件。

创建文件

在项目根目录中创建名为 squarecloud.ignore 的文件。
文件名必须完全是 squarecloud.ignore。.gitignore 不会被用来代替它:它经常列出应用运行所需的文件,例如 .env。

始终排除的内容

这些路径会在你自己的规则之前被忽略,因此你无需列出它们:
  • node_modules
  • .git、.github 和 .vscode
  • package-lock.json、pnpm-lock.yaml 和 yarn.lock
可以用 ! 规则重新包含其中任意一项。

锁文件

锁文件默认不会放进 zip,因此 Square Cloud 会根据 package.json 中的版本范围安装依赖。如果你需要锁文件固定的确切版本,请把它重新包含进来:

语法

每一行都是一条规则。匹配规则的文件或文件夹不会被上传。 规则的应用方式:
  • 最后一条匹配的规则生效,因此请将 ! 规则放在它们要撤销的规则之后。
  • 被忽略的文件夹中的文件无法被重新包含。 要保留某个文件夹中的一个文件,请忽略该文件夹的内容(logs/*),而不是文件夹本身(logs/),然后添加 !logs/keep.log。
  • 匹配不区分大小写:Dist/ 也会匹配 dist。
  • 规则只会去除末尾的空格,从不去除制表符。如果要保留末尾的空格,请用 \ 转义。
在模式中请使用 / 作为文件夹分隔符,在 Windows 上也是如此。

常见示例

排除开发工具和生成文件,同时保留应用运行所需的一切:
不要忽略应用在运行时读取的文件。如果你的代码从 .env 文件加载密钥,而你又在这里列出了 .env,应用启动时就拿不到这些值,机器人会因令牌无效而失败。请先把这些值移到应用的环境变量中;之后,把 .env 排除在上传之外就是安全的。

应用方式

CLI 和 VS Code 扩展在准备上传或 commit 的文件时会读取 squarecloud.ignore。匹配规则的文件不会包含在发送到 Square Cloud 的 zip 中。
  • 指向文件的符号链接会作为其指向的文件上传。指向文件夹的链接和失效的链接会被跳过。
  • 当 squarecloud.ignore 不存在时,CLI 仍会读取旧的文件名(.squareignore、.squarecloudignore 和 square.ignore),并提示你重命名该文件。
请将运行时需要的文件(例如配置文件中由 MAIN 指定的文件)放在不会被排除的路径中。 控制面板上传不会读取此文件:自己制作 zip 时,请手动把这些文件排除在外。