记录一下ts项目.d.ts声明文件问题解决

王小辉

共 1809字,需浏览 4分钟

 ·

2023-07-15 08:42

遇到的问题


在使用dumi开发开源框架的时候遇到无法找到模块 xxx 的声明文件,


5eb60b015ce67af3d7d260d71500a34f.webp


一直以来都是使用@types/xxx跟创建一个.d.ts来解决的


45789f6fce62a2451e6dc350c21880e4.webp


但这次加了不生效,仍然还是无法找到模块 xxx 的声明文件,然后我就在src目录下创建一个types.d.ts,之后编译器不再报错了,我以为就这样解决了,但是在打包的时候。


ca5dcf6650d5f11c8b4f2bd7f7c03c46.webp


他又报错了,打包不了。


问题解决


最后没办法了,直接去node_modules里面源文件添加一个.d.ts文件,这时打包跟编译器报错都解决了,但是防止下一位同事打包能正常打包,就去找了一下保存node_modules的解决方案。


具体是通过 `patch-package`这个npm包来实现的。


使用patch-package实现


1、先安装`patch-package`:`npm i patch-package --save-dev`


0973a279df9ec3d8eb740fb4e7013b49.webp


出问题了,换`yarn add patch-package --save-dev`


2、修改`package.json`,新增命令`postinstall`

    
      "scripts:{
    

    "postinstall":"patch-package    }


3、修改node_modules对应代码。


4、执行命令:`npx patch-package 你对应的包名` 比如我的 `npx patch-package rc-util`。


94672048f5fea4cafc7b646d97d33c31.webp


又出问题了,去找一下GitHub,[yarn - TypeError: Cannot read property 'dependencies' of undefined](https://github.com/ds300/patch-package/issues/234) 有点相似,最后使用`yarn patch-package rc-util --use-yarn`


886a4a40edaa23cf854f23a465fdbe11.webp


终于成功了,目录下也成功出现了这个文件。


33b76468dfa03ab5a73c5962a2546c94.webp


最后去试了一下删除node_modules,重新安装一下


4681e667746625d42f9b3734fec1e518.webp


beb63b6836c44e83b9175ef34e55ae70.webp


新增的.d.ts文件回来了。具体用法查看patch-package

https://www.npmjs.com/package/patch-package。


参考 [如何修改 node_modules 里的文件(同事看了直呼内行)]

地址:https://juejin.cn/post/6844904163558555662#heading-3


5e869d333004c0ce737587e3868afc8d.webp
浏览 290
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报