pnpm patch 成功给项目打补丁,但是项目运行时补丁不生效?

问题描述 投票:0回答:1

我发现 el-form 有问题,所以我决定在我的项目中修补 element-ui。

[email protected]
[email protected]
pnpm
element-ui@^2.15.14

我跑了

pnpm patch element-ui@^2.15.14

enter image description here

根目录补丁文件也生成了

enter image description here

package.json 也发生了变化

enter image description here

node_modules/element-ui 中的代码也发生了变化

enter image description here

我运行代码(pnpm dev)后,问题仍然存在。调试后发现源码没有改。

enter image description here

我尝试过清除缓存(

pnpm prune
),或者删除包(node_modules)并重新安装,或者清除缓存(删除node_modules/.vite并运行
pnpm dev --force
),但问题仍然存在。

vuejs2 vite patch pnpm
1个回答
0
投票

我之前改错了文件(

node_modules/element-ui/packages/form/src/label-wrap.vue
)。问题是
form-item.js
这个文件扔了,而
element-ui
的入口文件是element-ui.common.js。所以我改变了
node_modules/element-ui/lib/form-item.js
文件的getLabelWidth方法

getLabelWidth: function getLabelWidth() {
  if (this.$el && this.$el.firstElementChild) {
  var computedWidth = window.getComputedStyle(this.$el.firstElementChild).width;
  return computedWidth == 'auto' ? 'auto' : Math.ceil(parseFloat(computedWidth));
 } else {
   return 0;
 }
},

终于成功了,

© www.soinside.com 2019 - 2024. All rights reserved.