关于 patch-package 修改 node_modules 源码后无效的问题

我在尝试使用 patch-package 修改 element-ui 的 button
操作如下
1.安装了 patch-package

npm i patch-package --save-dev

2.修改 node_modules/element-ui/lib/button.js
在末尾修改了源码(此时 npm run serve跑出来的项目有效 已经打印出我修改的内容了)
image.png

3.创建 patch 文件

$ npx patch-package element-ui \# 使用npm

生成如图文件
image.png

4.package.json 加上如下代码

"scripts": { "postinstall": "patch-package" }

5.卸载 element-ui

npm uninstall element-ui

6.重新安装 element-ui

npm i element-ui -S

7.运行项目

npm run serve

但是发现跑出来的项目并没有我写的那句 console 好像修改并没有效果
请各位大佬指点一番!!!

阅读 11.9k
5 个回答
新手上路,请多包涵

老哥,我也没有效果,你解决了吗

# 修改代码后
yarn patch-package element-ui

# 测试卸载安装
npm uninstall element-ui
npm i element-ui -S

npm run postinstall # 重点!

# 运行项目
npm run serve

参照 @努力学习的菜鸟 的回复 测试流程如下
1.修改 element-ui/lib/button.js
image.png

浏览器刷新发现有效果

image.png
2.执行npx patch-package element-ui 生成patch 文件
image.png

image.png

3.

# 测试卸载安装
npm uninstall element-ui
npm i element-ui -S

4.

npm run postinstall # 重点!

image.png
发现 lib/button.js 源码并没有被覆盖
image.png

可能是源码位置找错了,试试修改此处的代码:/element-ui/lib/element-ui.common.js

查询 patch-pacgage 的时候,看到这个问题。

问题1:没有效果,console 打印不出来。

答:没有找对文件, 看一下 element-ui 的 package.json .

 "main": "lib/element-ui.common.js",

我们使用的只有这个打包出来的文件(lib/element-ui.common.js)。其他文件都是原始文件,修改了是不会起作用的。

问题2: 执行 npm run postinstall

postinstall 是一个 钩子脚本,只需要执行 npm install ,就会自动触发,不需要主动执行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏