跳至內容
Astera Technology

發佈資產名稱要沿目標大小寫規則

參考名稱對真正包內項目,不能自行改大小寫。

下載完整個案資料及參考答案 ↓

訂判斷及所需輸入

假設包只有 logo.png,卻參考 Logo.png。目標明訂分大小寫,故找不到;先忽略大小寫查會誤報成功。此處只對參考,不重命名或覆蓋解包目標。

已填本地測試工作表
情況輸入 JSON
原例測試{"caseSensitive":true,"reference":"Logo.png","entries":{"logo.png":"synthetic-bytes"}}
下載可編輯 CSV ↓

跑所附比較

可執行虛擬集合保原名稱,不掃工作站,也不推所有檔案系統的大小寫行為。

錯誤及所需輸出
路徑輸出 JSON
錯誤路徑{"found":true,"matched":"logo.png"}
所需路徑{"found":false,"matched":null}
下載可編輯 CSV ↓
完整本地 Node24.14.1 程序
import assert from 'node:assert/strict';

const run=function run(i,corrected=true){
    if(typeof i.caseSensitive!=='boolean')return {held:true};
    const names=Object.keys(i.entries);const matched=names.find(name=>corrected&&i.caseSensitive?name===i.reference:name.toLowerCase()===i.reference.toLowerCase())??null;
    return {found:matched!==null,matched};
  };
const cases=[{"input":{"caseSensitive":true,"reference":"Logo.png","entries":{"logo.png":"synthetic-bytes"}},"corrected":false,"expected":{"found":true,"matched":"logo.png"}},{"input":{"caseSensitive":true,"reference":"Logo.png","entries":{"logo.png":"synthetic-bytes"}},"corrected":true,"expected":{"found":false,"matched":null}},{"input":{"caseSensitive":true,"reference":"logo.png","entries":{"logo.png":"synthetic-bytes"}},"corrected":true,"expected":{"found":true,"matched":"logo.png"}},{"input":{"caseSensitive":null,"reference":"Logo.png","entries":{"logo.png":"synthetic-bytes"}},"corrected":true,"expected":{"held":true}}];
for(const test of cases){const actual=await run(test.input,test.corrected);assert.deepEqual(actual,test.expected);console.log(actual);}
下載可執行例子 ↓

按邊界依據作判斷

完全相同小寫名稱可過;目標行為未知,先停相容判斷。

  1. 核目標查找行為
  2. 對包內參考
  3. 記欠缺的確切名稱

不能用虛擬集合推主機行為。

可編輯邊界輸入及結果
條件輸入 JSON預期輸出 JSON
大小寫完全相同{"caseSensitive":true,"reference":"logo.png","entries":{"logo.png":"synthetic-bytes"}}{"found":true,"matched":"logo.png"}
目標查找規則未知{"caseSensitive":null,"reference":"Logo.png","entries":{"logo.png":"synthetic-bytes"}}{"held":true}
下載可編輯 CSV ↓

原例忽略大小寫找得到,就可通過嗎?

查看參考答案

不可。目標要完全同大小寫,Logo.png 欠缺;須改參考或提供該確切項目。

相關資源