我的项目有一个依赖项,我有时从包服务器获取,有时从我的机器上的本地副本获取.因此,我经常需要在Yarn开关中查找依赖项.此外,我经常更改依赖项的本地副本,并且需要查看我的主项目中反映的更改.因此,我需要一种方法来告诉Yarn继续查看依赖项的相同位置,但重新安装依赖项,跳过缓存并直接从其当前源获取它,即使版本号没有更改.(有时我想尝试对依赖项进行小的更改,每次更新版本号很快就会变得烦人.)
我该怎么办?
我尝试了以下,但没有一个工作:
yarn remove dependency
yarn add file:/dependency
Run Code Online (Sandbox Code Playgroud)
继续使用以前版本的依赖项.
yarn remove dependency
yarn cache clear
yarn add file:/dependency
yarn install --force
Run Code Online (Sandbox Code Playgroud)
还继续使用以前版本的依赖项.
yarn remove dependency
rm -rf node_modules/
yarn cache clear
yarn add file:/dependency
yarn install --force
Run Code Online (Sandbox Code Playgroud)
仍然继续使用以前版本的依赖项.
如何确保Yarn使用我的依赖项的最新版本?
Kar*_*ler 73
在删除节点模块后重新安装包使用:
yarn install --check-files
Kev*_*ica 21
您可以使用该yarn link命令.这将设置您的本地依赖项,以便每当您对依赖项进行更改时,它会立即显示在您的主项目中,而无需您执行任何其他操作来更新它.
如果你的主项目在,~/programming/main并且你的依赖项在~/programming/dependency并被命名MyLocalDependency,你将需要:
1)yarn link从您的依赖项中运行(没有其他标志):
cd ~/programming/dependency
yarn link
Run Code Online (Sandbox Code Playgroud)
2)yarn link <name of dependency package>从主项目中运行:
cd ~/programming/main
yarn link MyLocalDependency
Run Code Online (Sandbox Code Playgroud)
而且你已经完成了!
如果要从依赖项的本地副本切换到其他位置托管的副本,则可以使用yarn unlink.
cd ~/programming/main
yarn unlink MyLocalDependency
cd ~/programming/dependency
yarn unlink
Run Code Online (Sandbox Code Playgroud)
如果您使用NPM而不是Yarn,npm link并npm link <dependency>以相同的方式有效地工作.要取消链接依赖关系,请运行npm rm --global <dependency>.(这是因为npm link在全局NPM包中创建了一个simlink,因此从全局包中卸载链接依赖项也会破坏链接.)
请参阅的npm link文件和 如何卸载使用NPM链接安装包?
see*_*lts 21
正如凯文自我回答的那样,yarn link是一个不错的选择。
但是,如果您链接的包具有对等依赖项,则可能会导致一些问题。
什么卡尔·阿德勒说,也是很长的路要走:
yarn --check-files
Run Code Online (Sandbox Code Playgroud)
但这将重新安装(yarn没有子命令与 相同yarn install)每个已更改的包。
因此,如果您真的只想重新安装一个软件包:
yarn add package-name --force
Run Code Online (Sandbox Code Playgroud)
还有另一种方法。只需使用yarn upgrade package-name
参见手册:https://yarnpkg.com/lang/zh-CN/docs/cli/upgrade/
除了这些答案之外,我在切换 git 分支和yarn. 我有一个用于更新node_modules包的分支和另一个用于修复项目错误的分支。当我检查错误修复并返回更新分支时,yarn install或yarn返回:
success Already up-to-date.
? Done in 0.79s.
Run Code Online (Sandbox Code Playgroud)
但并未安装所有新软件包。因此,使用以下命令,我强制 yarn 安装所有软件包:
yarn --check-files
Run Code Online (Sandbox Code Playgroud)
现在它返回:
Building fresh packages...
? Done in 79.91s.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35815 次 |
| 最近记录: |