patch-package补丁node_modules

39 阅读1分钟

最近使用mand-mobile作为ui库,遇到一个问题。他的title-bar动态class是这样写的(如下文)。有可能是我的vue跟vue-template-compiler跟他的不匹配,我这边运行就报错了:不是一个可迭代的对象。

:class="[
  `title-align-${titleAlign}`,
  ...{'large': !!describe, 'large-radius': largeRadius}
]"

经过一番考虑,打算使用path-package去修改他的node_modules文件。这样可以同步到其他同事的手中,并且线上部署也不会出问题。

  1. 安装

github.com/ds300/patch… // patch-package包版本概览

```js

npm install patch-package@6.5.1 
// 注意这里的版本是否跟自己的node,npm版本匹配。因为我的是node版本比较老,是6.几,所以我指定了pack-package版本。
// 如果版本不匹配可能有意想不到的惊喜(错误)

npx patch-package --version // 检查是否安装成功
```

2. 修改对应的node-modules文件

```css
:class="[
  `title-align-${titleAlign}`,
  {'large': !!describe, 'large-radius': largeRadius}
]"
```

3. 手动创建补丁文件

```js
// npx patch-package package-name
npx patch-package mand-mobile
```

4. 添加命令。 在package.json文件script下加命令

```js
"postinstall": "patch-package"
// 这样其他同事拉取下来时,先npm run postinstall一下就可以同步了,很方便!!!
```