场景:需要修改安装的某个ui库的样式或者其他依赖,直接去node_modules中修改后,重新安装,或者其他小伙伴的电脑上并不能同时修改
方案:用patch-package 可以保留修改
步骤一
安装 patch-package —> npm i patch-package --save
步骤二 配置package.json
script加上‘‘postinstall’’:“patch-package”
步骤三 在node_modules中找到要修改的依赖
这里是修改 taro-ui-vue3/dist/style/components/button.scss,修改任意一处代码,
border-radius:
a
t
−
b
u
t
t
o
n
−
h
e
i
g
h
t
/
2
;
改
成
b
o
r
d
e
r
−
r
a
d
i
u
s
:
c
a
l
c
(
at-button-height / 2; 改成 border-radius: calc(
at−button−height/2;改成border−radius:calc(at-button-height / 2);
步骤四 生成补丁
执行 npx patch-package taro-ui-vue3
根目录下会生成一个补丁文件夹
最后,删除node_modules文件夹,重新安装npm i,如果button.scss里面是修改后的,那么补丁成功了
!!!注意:
A、必须在package.json中设置postinstall, 否则重新安装后修改的代码不会保留
B、如果postinstall存在多个 用&&
比如 “postinstall”: “husky install && patch-package”
C、必须有package-lock.json 或者yarn.lock才能运行npx patch-package xxx, 否则会报错
D、如果升级了patch-package, 补丁会失效,需要锁定版本号