别名
别名允许您使用自定义名称安装包。
假设您在整个项目中都使用lodash
。lodash
中存在一个错误,导致您的项目崩溃。您有一个修复方案,但lodash
不会合并它。通常情况下,您要么直接从您的 fork 安装lodash
(作为 git 托管的依赖项),要么以不同的名称发布它。如果您使用第二种解决方案,您必须将项目中所有需要更改为新的依赖项名称(require('lodash')
=> require('awesome-lodash')
)。使用别名,您有第三种选择。
发布一个名为awesome-lodash
的新包,并使用lodash
作为其别名安装它
pnpm add lodash@npm:awesome-lodash
无需更改代码。所有对lodash
的需要现在将解析为awesome-lodash
。
有时您希望在项目中使用两个不同版本的包。很简单
pnpm add lodash1@npm:lodash@1
pnpm add lodash2@npm:lodash@2
现在您可以通过require('lodash1')
引用第一个版本的 lodash,通过require('lodash2')
引用第二个版本。
当与钩子结合使用时,这将变得更加强大。也许您想在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
}
}