Deno 完整性檢查與鎖定文件

2020-06-24 17:05 更新

介紹

假設(shè)您的模塊依賴于遠程模塊 https://some.url/a.ts。當(dāng)?shù)谝淮尉幾g您的模塊時,a.ts 被下載、編譯、緩存。它將保持這樣,直到您在一個新的機器上運行您的模塊(生產(chǎn)環(huán)境?)或是重新加載緩存(例如通過 deno cache --reload)。但當(dāng) https://some.url/a.ts 的內(nèi)容變化時會發(fā)生什么?這將導(dǎo)致您的生產(chǎn)模塊使用了和本地模塊不同的依賴。Deno 的解決方法是使用完整性檢查與鎖定文件。

緩存與鎖定文件

Deno 可以使用一個較小的 JSON 文件存儲和檢查模塊的子資源完整性。 使用 --lock=lock.json 啟用和指定鎖文件檢查。 要更新或創(chuàng)建鎖,可以使用 --lock=lock.json --lock-write。--lock=lock.json 告訴 Deno 要使用哪個鎖文件,--lock-write 用來向鎖文件輸出依賴的哈希值。 (--lock-write 必須和 --lock 一起使用) 一個鎖文件可能看起來像這樣,針對依賴項存儲文件的哈希值: { "https://deno.land/std@v0.50.0/textproto/mod.ts": "3118d7a42c03c242c5a49c2ad91c8396110e14acca1324e7aaefd31a999b71a4", "https://deno.land/std@v0.50.0/io/util.ts": "ae133d310a0fdcf298cea7bc09a599c49acb616d34e148e263bcb02976f80dee", "https://deno.land/std@v0.50.0/async/delay.ts": "35957d585a6e3dd87706858fb1d6b551cb278271b03f52c5a2cb70e65e00c26a", ... }

運行時驗證

像上面的緩存一樣,您也可以在使用 deno run 子命令時配合--lock=lock.json 選項,從而在運行期間驗證所有被鎖定的模塊的完整性。請記住,這只會針對先前添加到 lock.json 文件中的依賴項進行驗證。新的依賴項將被緩存,但不會被檢驗。 您也可以通過使用 --cached-only 選項來要求遠程依賴都已經(jīng)被緩存。 deno run --lock=lock.json --cached-only mod.ts 如果依賴樹中有尚未緩存的 mod.ts 依賴項,此操作將失敗。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號