# 调试第三方库的骚操作
如何科学修改第三方库的bug或功能,并在本地调试,接下来以修改async
为例
# 方式一
使用webpack的alias功能
- 新建一个vue项目
npm install async
- 复制
node_modules/async/apply.js
到src/assets/apply.js
- 在
src/assets/apply.js
文件中加入一行console.log('applyjs', '我被改了')
- 在
src/main.js
中写入var async = require('async/index');
注意这里的引入方式 - 接着配置
vue.config.js
为如下内容
const path = require('path');
module.exports = {
chainWebpack: config => {
config.resolve.alias
.set('./apply', path.resolve(__dirname, 'src/assets/apply.js'))
}
};
1
2
3
4
5
6
7
2
3
4
5
6
7
# 方式二
使用 patch-package
调试修改
- 安装patch-package:
npm i patch-package --save-dev
- 修改package.json,新增命令postinstall:
"scripts": {
"postinstall": "patch-package"
}
1
2
3
2
3
- 修改node_modules里面的代码
- 执行命令:npx patch-package async
- 第一次使用patch-package会在项目根目录生成patches文件夹,里面有修改过的文件diff记录
patches/async+2.6.3.patch
。 - 卸载async包 :
npm un async
- 重新安装async:
npm i async@v2.6.3
- 执行
git apply --ignore-whitespace patches/async+2.6.3.patch
即可。其中async+2.6.3.patch是它生成的文件名。