说明小红书打包脚本预检与打包口径不一致的取舍
- pack.mjs 的 collectZipEntries 注释写明决定不改的理由:链接算不算合法产物还没定论,预检对链接是静默跳过 - manifest.json 同步 vite-export-xhs-minitool 的 sha256 与版本
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schemaVersion": "agc-skill-pack.v1",
|
||||
"version": "2026-08-26.69",
|
||||
"version": "2026-08-26.70",
|
||||
"skills": [
|
||||
{
|
||||
"name": "agc-unity-editor",
|
||||
@@ -204,7 +204,7 @@
|
||||
"scripts/validate.mjs",
|
||||
"scripts/vite.config.xhs-minitool.mjs"
|
||||
],
|
||||
"sha256": "1c2323f06e1b278f910c9aa48ae9c3c27ec351349c0c6a485fdc0603023d27ca"
|
||||
"sha256": "fd869242fdd40bb46fc3fbf30d1509c79d306e769e87dad3430b2ab0e5449b12"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+7
-5
@@ -133,11 +133,13 @@ function crc32(buffer) {
|
||||
/**
|
||||
* 收集目录下所有条目(目录条目在前,文件名统一 / 分隔,保持排序以稳定产物)。
|
||||
*
|
||||
* 已知取舍(评审提出、当前决定不改):本函数用 `statSync`(跟随符号链接)且**不**跳 `SKIP_DIRS`,
|
||||
* 而校验脚本预检用的 `walkArtifactFiles` 是 `lstatSync`(跳过链接)且会跳 `SKIP_DIRS`。两者口径
|
||||
* 不一致:链接目标的内容会被按链接名打进包,`venv` / `.cache` 这类目录也可能绕过扩展名白名单。
|
||||
* 不统一是因为「链接算不算合法产物」还没有定论,改任一侧都会动到现有可能依赖链接的包。真要统一
|
||||
* 时必须两份实现一起改,并补一条「预检与打包看到同一批文件」的用例。
|
||||
* 已知取舍(评审提出):本函数用 `statSync`(跟随符号链接)且**不**跳 `SKIP_DIRS`,而校验脚本
|
||||
* 预检用的 `walkArtifactFiles` 是 `lstatSync`(跳过链接)且会跳 `SKIP_DIRS`。两者口径不一致:
|
||||
* 链接目标的内容会被按链接名打进包,`venv` / `.cache` 这类目录也可能绕过扩展名白名单。
|
||||
*
|
||||
* **决定不改,理由**:「链接算不算合法产物」还没有定论,而预检对链接是**静默跳过**、不是拒绝;
|
||||
* 照评审建议在打包侧对链接直接抛错,会和预检的口径打架,也会动到现有可能依赖链接的包。真要统一
|
||||
* 时必须两份实现一起改成同一口径,并补一条「预检与打包看到同一批文件」的用例,那是独立的一次改动。
|
||||
*/
|
||||
function collectZipEntries(rootDir) {
|
||||
const entries = [];
|
||||
|
||||
Reference in New Issue
Block a user