在 npm install
的过程中,突然报错:
1 | Killed ....] / extract:webpack-dev-middleware: sill doParallel extract 1609 |
针对这个问题,StackOverflow 用户 enRaiser 指出,可能是 Swap 空间不足引起。1
查看当前 Swap 信息
使用 swapon -s
命令可以查看当前系统中的 swap 情况。如果返回为空,那么就是不存在 swap 文件。
也可以使用 free -h
查看当前系统中的 swap 使用情况:
1 | [root@host]# free -h |
创建 Swap
使用 fallocate
可以很方便地预分配一片空间,创建 swap 文件。例如在根目录(也就是 /
目录)创建一个 2G 大小,且文件名为 swapfile
的 swap 文件:
1 | fallocate -l 2G /swapfile |
使用 ls -lh /swapfile
查看刚创建的 swap 文件:
1 | -rw-r--r-- 1 root root 2.0G Jul 21 16:24 /swapfile |
生效 Swap
虽然 swap 文件已经成功创建,但是发现,其权限是 -rw-r--r--
,也就意味着非 root 权限的用户也能读取,因此记得改一下权限:
1 | chmod 600 /swapfile |
现在,使用 mkswap
就可以让 swapfile
作为系统的 swap 空间来使用:
1 | mkswap /swapfile |
然后使用 swapon
命令来激活刚刚的 swapfile
:
1 | swapon /swapfile |
验证 Swap
使用 swapon -s
来验证刚刚创建的 swap 文件:
1 | [root@host]# swapon -s |
或者通过 free -h
来查看:
1 | [root@host]# free -h |
包括在 htop
等应用中,也可以查看到刚创建的 swap 空间。
让 Swap 文件永久生效
刚刚创建的 swap 文件只在当前有效。系统重启之后,swapfile
不会自动生效。
因此,如果想让 swap 文件永久有效,那就需要修改 /etc
下的 fstab
文件,在最后一行加上:
1 | /swapfile swap swap sw 0 0 |
系统会在每次启动后检查这个文件,让 swapfile
生效,当作 swap 空间来使用。
OK,继续 npm install
。
参考链接
[1] StackOverflow, npm install always stuck at that extract:time-grunt