报错的原因是项目代码做了eslint的规范检查:
规定了换行需要以unix系统的换行方式,Linux下只有换行LF,而在window下换行默认是CRLF,
在window系统下git pull项目的时候,git会默认将文件中的LF换行方式转为系统默认的CRLF换行格式,才会导致用idea打开时,所有的文件都是CRLF,这样代码提交后,会出现编译问题(服务端为linux系统)
这种差异是因为系统的不同而存在,具体差异:
Windows系统下文本文件的换行符是: 回车+换行CR/LF即 \r\n或^M\n
linux/unix系统下文本文件的换行符是:换行LF即 \n
Mac OS系统下文本文件的换行符:回车CR即 \r或^M
解决方法一:
在eslintrc.js中修改配置,在rules对象最后添加:
"linebreak-style": [0 ,"error", "windows"],
然后要重启项目。
解决方法二:
在终端执行 npm run lint:js -- --fix
命令,进行代码格式处理,然后重新启动项目即可。
若仍报错,可能是需要将 node_modules
里的 .cache
文件夹下的 .eslintcache
先删除,然后再执行上面那行命令。
解决方法三:
点击idea右下角这个地方,这个方法比较麻烦的是,每个文件都需要修改这个地方的设置。
在windows系统下改成LF