常用多版本工具
日常开发、调试中经常遇到不同项目依赖的版本不一致。
nvm
node多版本管理/切换
nrm
npm源管理/切换
pyenv
python多版本管理/切换
sdkman
jdk 多版本管理/切换
不仅仅支持jdk,更多详见官网
小于 1 分钟约 143 字
日常开发、调试中经常遇到不同项目依赖的版本不一致。
node多版本管理/切换
npm源管理/切换
python多版本管理/切换
jdk 多版本管理/切换
不仅仅支持jdk,更多详见官网
通过 pyenv 管理 python 版本
如果没有安装
xcode-select
需要先运行xcode-select --install
brew update
brew install pyenv
- 后台返回421状态码时,浏览器底层会自动重发一次相同的请求
- F12查看只有一次请求,前端请求的返回也只有一条
- 通过抓包软件或者ng后台日志可以确认浏览器确认发了2条相同的请求
一次日常版本测试中,测试同事反馈某一场景下后台日志收到:接口A有2条相同的请求日志,而接口B只有一条请求日志。
轻量编辑器,丰富的插件
基础用法
const webviewInfo = ({tcpPort = 4000, prefix = 'webview', filter = d => d} = {}) => {
if (prefix === '*') {
prefix = '.+';
}
let re = new RegExp('@(' + prefix + '_devtools_remote(?:_\\d+)?)', 'gi');
return getDeviceId().then(deviceId => {
//
return adbKit.shell(deviceId, 'cat /proc/net/unix | grep _devtools_remote')
.then(adb.util.readAll)
.then(output => {
let remotePorts = new Set();
output.toString().replace(re, (_, port) => {
remotePorts.add(port);
});
if (remotePorts.size) {
return [...remotePorts];
} else {
throw new Error('没有启动 webview');
}
})
.then(ports => getForwardPortInfo({deviceId, ports, tcpPort, filter}))
});
};