Vue项目打包emittingError: EINVAL: invalid argument, mkdir 'E:\GitProj\watch_web_ui\dist\E的问题,包含一些配置文件的说明

在vue项目打包的时候出现emittingError: EINVAL: invalid argument, mkdir ‘E:\GitProj\watch_web_ui\dist\E:\GitProj\watch_web_ui’

在维护一个vue比较老的项目时候,把代码拉下来改好之后发现打包出问题,打包不成功,报错如图所示
Vue项目打包emittingError: EINVAL: invalid argument, mkdir 'E:\GitProj\watch_web_ui\dist\E的问题,包含一些配置文件的说明_第1张图片
其实从报错很明显能够看出来是创建目录时候出错了,本来在到了我们\dist就应该停止了,但是后边莫名其妙又多拼接了一段路径,这个时候肯定第一时间想到的是webpack配置里边的输出文件地方出问题了,下图是配置文件内容
Vue项目打包emittingError: EINVAL: invalid argument, mkdir 'E:\GitProj\watch_web_ui\dist\E的问题,包含一些配置文件的说明_第2张图片
这个地方是我们配置出口的位置,是正确的没什么问题,这里我打印出来看路径也还是正常的,那会不会是因为路径不能识别呢,那我们将路径写死,将path: path.join(__dirname, ‘./dist’)直接改成E:\GitProj\watch_web_ui;继续打包,结果还是出现同样的错误,所以我们这个出口文件的地方是没有什么问题的,这个时候如果大家也出现类似问题或者即使不同的错误,有一个解决问题的思路,这个思路不能说很好,但是我觉得是很有用的,就是将后边的所有插件都逐一注释掉,看注释掉哪个插件会正常,这样就能定位到问题所在了。继续说问题;
Vue项目打包emittingError: EINVAL: invalid argument, mkdir 'E:\GitProj\watch_web_ui\dist\E的问题,包含一些配置文件的说明_第3张图片
这是我配置文件的部分截图,我这次运气还算比较好,把第一个eslint-loader注释掉之后发现打包可以运行了,那基本可以定位问题了,就是代码不规范导致的,所以我们重新运行项目,将项目里边所有的警告地方全部按照eslint规范写好,重新打包,果然,问题解决。
但是呢,如果我们既不想关闭eslint,也懒得改代码了怎么办,当然不建议这样做,遵从代码规范还是好的,当然,如果警告地方实在是太多了,那么我们就从配置文件下手了,这个时候:
Vue项目打包emittingError: EINVAL: invalid argument, mkdir 'E:\GitProj\watch_web_ui\dist\E的问题,包含一些配置文件的说明_第4张图片
我们可以将options里边的fix改成true;这时候比如说我们代码因为分号等这种小问题,就不会阻塞代码正常打包,而是会自动帮我们修复代码,但是这个办法很有可能某个地方有自动修复不了的代码,到时候可能报错的地方我们更找不到了,因此这个办法是在我们项目可以正常运行,确定没有什么基础bug的时候可以尝试使用一下;还有一个办法,另外,我们如果对打包时候不需要看日志什么的,那还可以将下边的outputReport注释掉,
Vue项目打包emittingError: EINVAL: invalid argument, mkdir 'E:\GitProj\watch_web_ui\dist\E的问题,包含一些配置文件的说明_第5张图片这样子,也不会报错了,也能正常打包,打包成功之后会有一个警告,当然这个可以根据实际的需求来更改。
总结:如果我们的项目使用了eslint,希望大家还是完全遵守代码规范来开发,不仅仅是为了防止项目的报错警告之类的,遵守规范也能够让我们的代码看起来清晰,也方便其他人阅读,养成好习惯,从eslint做起。

你可能感兴趣的:(emittingError:,EINVAL:,invalid,argu,[email protected],build:,`webpack,--pr)