エイリアス
エイリアスを使用すると、カスタム名でパッケージをインストールできます。
プロジェクト全体でlodash
を使用していると仮定します。lodash
にプロジェクトを破損するバグがあります。このバグの修正はありますが、lodash
ではマージされません。通常はlodash
をフォークから直接インストールするか(gitでホストされている依存関係として)、または異なる名前で公開する必要があります。2番目のソリューションを使用する場合、プロジェクト内のすべてのrequireを新しい依存関係名(require('lodash')
=> require('awesome-lodash')
)に置き換える必要があります。エイリアスを使用すると、3番目のオプションが使用できます。
awesome-lodash
という新しいパッケージを発行し、lodash
をエイリアスとして使用してインストールします
pnpm add lodash@npm:awesome-lodash
コードを変更する必要はありません。lodash
のすべてのrequireはawesome-lodash
に解決されるようになりました。
プロジェクト内でパッケージの異なる2つのバージョンを使用したい場合もあります。簡単です
pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2
これで、require('lodash1')
を使用して最初のバージョンのlodashをrequireでき、require('lodash2')
を使用して2番目のバージョンをrequireできます。
これは、フックと組み合わせるとさらに強力になります。たとえば、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
}
}