file依赖引用的问题

file依赖引用的问题

问题描述:

当前lerna项目中, 有两个被管理的模块 core 和utils,
主逻辑在core/cli中,然后core/cli引用了utils/log的包,utils/log是通过file进行引入的。
假设utils/log 对应的包名是 @white-cli/log

但是每次我执行了lerna add packageName core/cli,每次执行命令给core/cli安装依赖的时候,
然后在终端重新调用脚手架命令,每次都会抛出 cannot find module @white-cli/log不存在,
每次都需要重新在core/cli下重新执行npm link才可以,很麻烦。

当我把 core/lig 引入的依赖改为 "@white-cli/log" : "1.0.0",对应的版本号,而不是file引入。就不会出现这个问题,一切都显得正常。

感觉这个file引入有问题,不知道是不是我使用方式不对。
谢谢老师!!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
扬_灵 2021-07-02 08:31:27

同学你好,报依赖找不到是因为在安装依赖的时候node_modules中的依赖会刷新,file格式引用的依赖会被刷掉需要重新安装,你可以在安装依赖之后在node_modules中找一下file格式引用的依赖。通过版本号的方式引用正常是因为你的依赖包已经发布上线了,引用之后在node_modules中安装的是线上版本并不是你本地的依赖。在开发时还是使用file的格式引用本地的依赖,依赖开发完成后可以发布到线上在使用线上依赖,

  • 提问者 rookie_white #1

    1.通过版本号的方式引入,调用的还是我本地的包(我本地包这时候还没发布上线),我改动本地的包,相应的逻辑也改了,我是通过lerna link 跟版本号配合的。
    在每次添加包之后,我都执行了lerna link。

    2.如果使用file的话,每次都是需要npm link重新加载回来是吗?这个步骤不可省略

    2021-07-02 08:49:29
  • 扬_灵 回复 提问者 rookie_white #2

    同学你好, @white-cli/log这个包是已经发布在npm官网上的,可以把你的项目上传一下,我在本地测试定位一下,如果使用file格式 npm link是不能省略的。

    2021-07-02 20:28:27
  • 提问者 rookie_white #3

    好的我明白了,谢谢

    2021-07-02 21:20:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师