记Linux下Cli3执行npm run serve报错no s
2019-06-05 本文已影响3人
果汁凉茶丶
本文笔者记录解决经历,想直接看解决方案的看官直接拉到底部即可。
# 背景介绍
笔者于【2019-06-05】如往日一样打开vue cli3项目准备启动项目时,执行npm run serve
报错如下
# 解决过程
1. 是否内存溢出了?
笔者首先想到的是不是项目执行内存溢出了,但感觉内存溢出应该不是这个错误,管他呢,试试先。于是笔者对package.json
文件中的执行脚本进行了修改,如下:
增加了命令vue-cli-service --max_old_space_size=4096 serve
执行了一下没效果,意料之中。其实这个是修复以下问题时的办法
2. 磁盘空间不足?
观察一下错误信息,no space left on device
指的是磁盘空间不足,cd
到相应目录下,检查一下目录大小
du -sh
workspace文件夹占用空间
这才占用3.2G
,明显不是空间满了的问题
3. inode无法分配?
既然空间足够,又提示空间不足,是因为碎小文件过多吗?检查一下inode情况
df -i
笔者的系统里出现了大量的 100% Use模块,均是
snap/
文件占用的/dev/loop
设备挂载点
4. 什么是/dev/loop ?
/dev/loop
是Linux的循环设备,又称vnd(vnode disk)
,lofi(循环文件接口)
,是一种伪设备,它使得文件可以如同块设备一般被访问。
笔者查了一下,linux中有三种设备类型
- 块设备: 系统间用快的方式移动数据的设备。如硬盘,CD-ROM和内存
- 字符设备: 每次与系统传输1个字符的流通讯设备。如传真,虚拟终端和串口调制解调器。一般不支持随机存取数据
-
伪设备:
- /dev/loop: 循环设备
- /dev/random: 产生虚假随机的任意长度字元串流
- ...
# 解决办法
问题定位。虽内存足够,因为碎小文件太多循环设备被大量创建,/分区下的inode号被大量占用,无法继续分配空间。清理掉这些文件,运行命令:
sudo apt autoremove --purge snapd
再试一下npm run serve
,问题解决。