981377660LMT / ts

ts学习
6 stars 1 forks source link

yarn link #552

Open 981377660LMT opened 3 months ago

981377660LMT commented 3 months ago

在使用yarn linkyarn unlink之后,import { searchWithRequest } from '@onejs/components-kuaida'的模块加载行为会有所不同。以下是详细的解释:

使用yarn link之后

当你在本地库目录中运行yarn link,然后在项目中运行yarn link @onejs/components-kuaida之后,模块加载的行为如下:

  1. 符号链接yarn link会在全局yarn目录中创建一个符号链接,指向本地库的实际路径。然后在项目的node_modules目录中创建一个符号链接,指向全局yarn目录中的符号链接。

  2. 模块解析:当你在项目中使用import { searchWithRequest } from '@onejs/components-kuaida'时,Node.js的模块解析机制会遵循符号链接,直接加载本地库的代码。这意味着你在本地库中所做的任何更改都会立即反映在项目中,而无需重新安装或发布库。

使用yarn unlink之后

当你在项目中运行yarn unlink @onejs/components-kuaida之后,模块加载的行为如下:

  1. 解除符号链接yarn unlink会移除项目node_modules目录中指向全局yarn目录的符号链接。

  2. 恢复远程包:如果你之前已经从远程仓库(如npm)安装了@onejs/components-kuaida,那么在解除链接后,项目会恢复使用node_modules目录中从远程仓库安装的版本。

  3. 模块解析:当你在项目中使用import { searchWithRequest } from '@onejs/components-kuaida'时,Node.js的模块解析机制会从项目的node_modules目录中加载远程仓库的版本,而不是本地库的版本。

总结

通过这种方式,你可以在本地开发和测试库时使用yarn link,而在准备发布或使用稳定版本时使用yarn unlink来恢复到远程仓库的版本。这样可以确保开发的灵活性和依赖的一致性

981377660LMT commented 3 months ago

yarn link为某个包创建本地链接的过程,实际上是通过在文件系统中创建符号链接(symlink)来实现的。符号链接是一种特殊类型的文件,它包含对另一个文件或目录的引用。在这种情况下,符号链接指向你想要在开发过程中使用的本地包的目录。以下是yarn link如何工作的详细步骤:

步骤1:在本地包中创建全局链接

  1. 在本地包的目录中运行yarn link。这个命令会在全局yarn链接存储位置(通常是用户的主目录下的.config/yarn/link)创建一个符号链接,该符号链接指向当前包的目录。

步骤2:在项目中链接到本地包

  1. 在要使用该本地包的项目目录中运行yarn link <package-name><package-name>是你在package.json中定义的包名。这个命令会在项目的node_modules目录下创建一个符号链接,该符号链接指向第一步中创建的全局符号链接。

如何实现引用指向

Node.js模块解析机制

总结

通过yarn link创建的符号链接,使得项目可以直接引用并使用本地包的代码,这对于本地开发和测试非常有用。这种方法允许开发者在不发布包到npm的情况下,即时看到和测试对包的更改。

981377660LMT commented 3 months ago

yarn install --force命令是yarn包管理工具的一个选项,用于在安装项目依赖时强制重新下载所有包,即使这些包已经被缓存。这个命令可以帮助解决一些因依赖包损坏或缓存问题导致的问题。以下是该命令的一些关键点:

功能

使用场景

注意事项

总的来说,yarn install --force是一个强大的命令,用于解决依赖相关的问题,但应谨慎使用,以避免不必要的性能开销。