0%

常见错误集合(持续更新...)

收录一些平时开发过程中遇到的 BUG ,方便以后查阅。

git pull

在使用 git 拉取远端仓库的代码时,报错:

fatal: refusing to merge unrelated histories

这是因为 git 认为本地仓库与远程仓库是不一样的(即使是同名),使用以下命令:

1
git pull origin master --allow-unrelated-histories

fetch

在使用 fetch api 进行数据的请求的时候,若服务器返回了 cookie,我们在 Chrome devtool 里面也能够看到服务器的返回,但浏览器却并不会缓存下来,解决办法如下:

1
2
3
4
5
fetch(url, {
credentials: "include" // 这一行很重要,加上解决
})
.then(res => console.log(res))
.catch(err => console.error(err));

使用 fetch 上传文件时,node 后台接收不到

在上传文件时,主要是需要用到 formData,若我们在 node 后台使用了 multer 来处理上传的文件,可能会遇到接收不到文件的情况,即 req.files 为空。

由于 multer 只处理 multipart/form-data 的数据,所有我们可能会在 fetch 请求的头部加上一行参数:

1
2
3
4
5
fetch(url, {
headers: {
"Content-Type": "multipart/form-data"
}
});

这就导致了后台接收不到数据。但我们使用 ajax 却能够成功上传,对比一下请求头发现 ajax 的头部 Content-Type 会中会多一个参数 boundary=----WebKitFormBoundary1VsIwNJXtJRhMefR 这种的参数。

解决办法就是把 fetch 请求头部的 Content-Type 去掉,浏览器会为我们自动加上,这样后台就能够接收到文件了。

微信小程序中 border-radius 圆角边框剪裁问题

在微信小程序中使用 border-radius 时,会出现圆角边框剪裁问题,如下图:

在 css 中加入下面的代码可以解决:

1
2
3
.content {
transform: translateZ(0);
}

处理 vscode 中 nvm 错误提示的问题

1
rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

FSEventStreamStart

在使用 Facebook 的 jest 进行 react 组件的测试时,出现了下列错误:

1
(FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)

解决办法为,升级系统的 watchman:

1
brew install watchman

lodash.clonedeep

在 CI/CD 自动化发布的时候,安装完依赖进行打包的时候遇到下面的错误:

1
ERROR in Cannot find module 'lodash.clonedeep'

这是 sass 的问题,是安装 node-sass 出错引起的报错,一般来说删除了重装就好了,如果不行的话可以使用以下方法来解决(我使用这种方法解决):

修改 package.jsonnode-sass 的版本然后重新安装依赖:

1
2
3
4
5
6
7
8
{
"dependencies": {
"node-sass": "npm:sass"
},
"resolution": {
"node-sass": "npm:sass"
}
}

解决 ios 部分手机键盘弹起导致 input 无法聚焦的 bug

监听 input 的 blur 事件,执行 window.scroll(0,0) 让页面还原到初始位置

react 修改打包目录后,public下的公共文件没有到新目录

1
2
3
//配置favicon公共文件打包目录
const paths = require('react-scripts/config/paths');
paths.appBuild = path.join(path.dirname(paths.appBuild), 'dist');