別名
別名讓您可以使用自訂名稱安裝套件。
假設您在專案中到處使用 lodash
。lodash
中有一個錯誤會中斷您的專案。您有一個修正,但 lodash
拒絕合併。通常您會直接從您的分支安裝 lodash
(作為 git 託管的相依性),或使用不同的名稱發布它。如果您使用第二個解決方案,您必須將專案中所有 require 替換為新的相依性名稱(require('lodash')
=> require('awesome-lodash')
)。有了別名,您有第三個選項。
發布一個名為 awesome-lodash
的新套件,並使用 lodash
作為其別名來安裝它
pnpm add lodash@npm:awesome-lodash
不需要更改程式碼。lodash
的所有 require 現在都將解析為 awesome-lodash
。
有時候你會想要在你的專案中使用兩個不同版本的套件。很簡單
pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2
現在你可以透過 require('lodash1')
來取得第一個版本的 lodash,而透過 require('lodash2')
來取得第二個版本。
當與 hooks 結合使用時,這會變得更強大。也許你想要在 node_modules
中的所有套件中,將 lodash
替換成 awesome-lodash
。你可以使用以下 .pnpmfile.cjs
輕鬆達成
function readPackage(pkg) {
if (pkg.dependencies && pkg.dependencies.lodash) {
pkg.dependencies.lodash = 'npm:awesome-lodash@^1.0.0'
}
return pkg
}
module.exports = {
hooks: {
readPackage
}
}