我正在开发一个 vue.js 前端,我需要修补一个包以满足应用程序的特殊需求。我要修补的软件包是“ vue-youtube
”(这并不重要)。我正在尝试使用补丁包(https://www.npmjs.com/package/patch-package)对其进行修补
所以基本上:
- 我在本地编辑
/node_modules/vue-youtube/src/vue-youtube.js
以满足我的需要 - 我确实在我的 package.json 中添加了 postinstall 脚本:
"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
并启动我的 web 应用程序时,使用的包仍然是未编辑的包。我之前试过跑步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 文件夹中的文件......)