发布于 2026-01-06 2 阅读
0

使用本地 NPM 包作为依赖项,yalc DEV 的全球展示挑战赛由 Mux 呈现:展示你的项目!

使用 yalc 将本地 NPM 包作为依赖项

由 Mux 赞助的 DEV 全球展示挑战赛:展示你的项目!

介绍

如果您开发 NPM 包,您可能需要将一个包的本地版本作为另一个包的依赖项。例如,假设您有两个包,Apackage-apackage-bB,其中package-aA 依赖于 B。package-b您对 A 进行了更改,并希望在不发布到 NPM 的情况package-b下在 B 中测试这些更改package-apackage-b

yalc通过允许您将本地依赖项发布到本地存储并使其可供依赖项目使用来解决这个问题。

以下是快速入门指南,方便您参考。如果您想了解yalc命令的底层工作原理,请继续阅读“工作原理”部分

快速入门

注意:package-a是本地依赖包,package-b是本地依赖包。

1.yalc全局安装

$ npm i -g yalc
Enter fullscreen mode Exit fullscreen mode

2.将你的依赖项发布到yalc商店

[package-b] $ yalc publish
Enter fullscreen mode Exit fullscreen mode

3.将存储的依赖项添加yalc到您的依赖项目中

[package-a] $ yalc add package-b
Enter fullscreen mode Exit fullscreen mode

3a.如果依赖项的依赖项尚未安装,请安装它们。

[package-a] $ npm i
Enter fullscreen mode Exit fullscreen mode

4.修改依赖项后,更新应用商店中的包,并将更改推送至依赖项目。

[package-b] $ yalc push
Enter fullscreen mode Exit fullscreen mode

5.从依赖项目中移除依赖项

[package-a] $ yalc remove package-b
Enter fullscreen mode Exit fullscreen mode

工作原理

使用此功能yalc添加本地包作为依赖项时,首先需要将该依赖项发布yalc到应用商店,然后将其添加到被依赖项目中。之后,您可以更新该依赖项,并最终将其从被依赖项目中移除

出版

要将依赖项添加到yalc商店,请运行yalc publish。这将在商店中创建一个包的副本,该副本位于~/.yalcyalc还会计算包文件的哈希签名并将其存储在商店中,以验证是否将正确版本的包添加到其他项目中。

添加

yalc add <dependency>在您的依赖项目中,将商店中发布的包添加到您的项目中。yalc它会将包拉取到项目中并将其放置在指定位置.yalc,并更新项目中的依赖项条目,package.json使其指向本地副本。

例如,运行此命令将yalc add package-b在 .package-a创建依赖项的副本package-a/.yalc/package-bpackage-a的 .package.json将有一个指向 的依赖项package-b条目file:./yalc/package-b

yalc add还会yalc.lock在依赖项目中创建一个文件,该文件使用通过以下方式创建的签名将依赖项修复为商店中的版本yalc publish

请注意,该命令yalc不会安装本地yalc软件包的依赖项;npm i如果本地软件包有任何未安装的依赖项,请在添加依赖项后运行该命令。

正在更新

如果您对依赖项进行了更改,并且需要在依赖项目中进行更新,请yalc push在依赖项目中运行以下命令。这将把更新后的依赖项发布到应用商店,并更新依赖项目中的更改。

或者,您可以yalc publish在依赖项中运行,然后yalc update在依赖项目中运行。

如果依赖项的依赖项发生了变化,则需要npm i在依赖项目中再次运行。

移除

当您的项目不再需要本地依赖项时,可以使用以下命令将其删除yalc remove <dependency>。这将删除存储在 `<dependency_name>` 中的依赖项.yalc以及`<dependency_name>` 和`<dependency_name>`yalc中的信息yalc.lockpackage.json

结论

yalc它让您能够轻松地在其他项目中使用本地开发的软件包。它还有一些我这里没有提到的其他实用功能;您可以在项目的 README 文件中了解更多信息。希望这能帮助您开始使用本地软件包进行开发——祝您好运!


让我们联系

如果您喜欢这篇文章,请在TwitterLinkedInGitHub上关注我!您也可以订阅我的邮件列表,获取我的最新内容和资讯。

参考

封面照片由Joshua Hoehne拍摄,来自Unsplash。

文章来源:https://dev.to/zachsnoek/using-local-npm-packages-as-dependency-with-yalc-2g56