如何修改 node_modules 中项目依赖的源代码实现

此处使用 yarn 讲解,使用 npm 也是相同的原理

要想修改依赖包的源代码,第一想法是直接在 node_modules 中找到包位置,直接修改这里的代码,然后编译。这种方式是不会生效的。原因在于 yarn 安装依赖包时,除了从仓库拉取对应文件外,还会根据 pakcage.json 进行编译。这就会导致修改后的代码无法发挥作用。如果你想修改后调用 yarn install,之前修改的代码就会被从仓库拉去的代码覆盖。

好在 yarn 提供了对应的指令 link。该指令有两个作用,一个是将指定的 npm 包发布到本地全局引用,这样别的项目就可以通过特定命令使用本地发布的包替代仓库的包。另一个作用是在工程中,指定本工程使用本地的版本,不使用仓库版本。所以具体使用本地源代码替代仓库版本的具体流程如下:

// 01. the package name is test22 for example
git clone <package repo url>
// 02.
cd <package dir>
yarn install && yarn run build
yarn link
// 03.
cd <project dir which depent the package>
yarn link test22
// 04.
yarn install --force
// other commands used for build your project. eg: yarn build
yarn build

在 lerna 管理的项目中使用本地代码

使用 lerna 管理项目时,步骤 01-03 都一样,不一样的是,此时不能使用 yarn install --force 来安装,应该使用 lerna bootstrap --force-local 。这样就可以了。

解除本地引用

如果想继续使用仓库版本的代码,使用 unlink 指令做相反的操作就可以。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值