使用 patch-package 在本地修补 NPM 包,不起作用

vic*_*ico 10 patch npm vue.js patch-package

我正在开发 vue.js 前端,我需要修补一个包以满足应用程序的特殊需求。我试图修补的包是“ vue-youtube”(这并不重要)。我正在尝试用 patch-package 修补它(https://www.npmjs.com/package/patch-package

所以基本上:

  • 我在本地编辑了/node_modules/vue-youtube/src/vue-youtube.js以满足我的需要
  • 我确实在 package.json 中添加了安装后脚本:"scripts": { "postinstall": "patch-package" }
  • 我做到了npm install patch-package --save-dev
  • 然后我跑了npx patch-package vue-youtube
  • 它确实在我的修改的文件夹vue-youtube+1.4.0.patch中创建了一个文件/patches

但是,我的修改没有被看到。当我这样做npm run serve并启动我的网络应用程序时,使用的包仍然是未编辑的包。我npm install之前尝试过跑步,但没有成功。当我转到/node_modules/vue-youtube/dist/vue-youtube.js(幸好它是一个小包,所以它是可读的)时,我可以看到我的修改确实没有被“编译”。

我在这里缺少什么?我觉得我已经遵循了补丁包 npm 页面中的所有内容。

谢谢

编辑:仍在调查..还有更多信息/问题:

  • 我的补丁名称是patches/vue-youtube+1.4.0.patch
  • 当我运行时npm ls vue-youtube它只返回一个元素:vue-youtube@1.4.0
  • 在我package.json列出的依赖项中"vue-youtube": "^1.4.0",它应该有所不同吗?它应该提到它需要修补吗?

编辑2:我意识到我不是在编辑node_modules/vue-youtube/dist/vue-youtube.js,而是在编辑node_modules/vue-youtube/src/vue-youtube。如果您编辑 dist 文件夹中的文件,该补丁就会起作用。(但是我认为 patch-package 允许我以可读的 JS 格式编辑 src 文件夹中的文件...)

vic*_*ico 11

dist/工作解决方案:如果直接在包的文件夹而不是文件夹中编辑文件src/,则补丁可以正常工作。