在接手一个Node项目的时候,npm install。却出现了”killed”的错误。以为是Node版本的问题,熟练地切换了0.11与0.10版,同样无解。

由于新的npm版本吧,npm install的时候已经无法看到常规的log信息了。以npm install -d查看安装的过程,发现无任何特殊的地方。在一定程度的时候,直接被”killed”。关于npm install -d可以看 npm config

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

最后才想到,可能是内存不够了。由于是以vagrant启动的一台ubuntu14.04的虚拟机,默认只有500M的内存。而且该项目会用到一些底层的npm包,会编译一些代码。这就导致了内存不够用。

可以查一下相应的系统log,在路径 /var/log之下,确认自己的问题。如/var/log/syslog/var/log/messages等。

Solution

1. 增大内存。

由于我是虚拟机,所有增大内存相对简单。在vagrantfile里,只需要增加一条:

  config.vm.provider "virtualbox" do |v|
v.memory = 1024
end

即可。

2. 利用swap file实现虚拟内存

使用

sudo swapon -s

查看系统是否配置了交换区域。没有的话, 便直接开始创建swap file。

创建一个1G的文件。

sudo fallocate -l 1G /swapfile

使用

ls -lh /swapfile

确认是否是自己所需要的文件大小。

启用Swap文件

首先调整文件的权限,若该文件能被其他用户随意的读写,则会产生很大的安全隐患。

sudo chmod 600 /swapfile

现在安全多了,可以让系统开始设置交换区域了。

sudo mkswap /swapfile

启用该文件

sudo swapon /swapfile

现在基本的步骤已经完成了,可以使用最初的命令验证swap file是否正确使用。

sudo swapon -s

Filename                    Type          Size     Used     Priority
/swapfile file 1048572 0 -1

交换分区已经成功设置,系统会在必要的时候使用它。

注意

现在已经启用了swap文件,但当我们重启的时候,系统不会自动地启用该swap文件。可以通过修改fstab文件实现开机使用swap文件。

用root权限编辑

sudo vim /etc/fstab

在文件的最后,需要添加一行告诉操作系统自动使用swap文件。

/swapfile   none    swap    sw    0   0

如此再npm install 的时候,便解决了所有的问题了。

NPM install - killed error solution的更多相关文章

  1. vue-cli3.0创建项目报npm install --loglevel error 踩坑的那把辛酸泪

    创建项目 vue create vue-pro 然后如下图 一开始以为是npm的问题,卸载了Mac的node ,安装nvm,然后再安装node (可参考: Mac中nvm的安装和使用   https: ...

  2. command failed: npm install --loglevel error --registry=https://registry.npm 用vue-cli 4.0 新建项目总是报错

    昨天新买的本本,今天布环境,一安装vue-cli发现都4.0+的版本了,没管太多,就开始新建个项目感受哈,一切运行顺利,输入 "vue create app" 的时候,一切貌似进展 ...

  3. #npm install# MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "4.0"。

    0.问题描述 Windows 10 最近使用npm install安装项目依赖包,当自动执行至node-gyp rebuild时报错: C:\Users\dsl\Desktop\Pros\ant-de ...

  4. ionic3 npm install cordova error syscall rename

    突然出现cordova 不是内部或外部命令,也不是可运行的程序或批处理文件. 可是之前cordova安装后一直用的好好的啊,后来尝试重新安装cordova 出现这个错误.也尝试重新安装了最新版本的no ...

  5. @vue-cli3创建项目报错:ERROR command failed: npm install --loglevel error --registry=https://registry.npm.taobao.org --di

    使用@vue-cli3时 在你感觉所以配置都搞好开始创建项目时,不停的报错,就是创建不成功 清npm缓存也不行 改淘宝镜像也不行 就快奔溃了,最后最终(其实我在凑150字,为了能发到首页给更多采坑的兄 ...

  6. npm install报错Error: ENOENT

    E:\projects\ueditor\ueditor1_4_3_3-src>npm installError: ENOENT, stat 'C:\Users\Lucas\AppData\Roa ...

  7. npm install Error:EPROTO: protocol error, symlink '../mime/cli.js' -> '/vagrant/src/nodejs/node_modules/express/node_modules/send/node_modules/.bin/mime'

    我在ubuntu上使用npm安装依赖是出现下面错误: npm ERR! Linux 3.13.0-101-genericnpm ERR! argv "/usr/bin/nodejs" ...

  8. npm install 报错(npm ERR! errno -4048,Error: EPERM: operation not permitted,)解决方法

    npm ERR! path E:\SouthernPowerGridProject\web_project\AutoOPS\autoops\node_modules\fsevents\node_mod ...

  9. npm install error: MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”

    When I tried to run angular 4 material2 demo on my windows server 2012, got a error message: node-pr ...

随机推荐

  1. 设想 Docker 下部署 KVM

    设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ...

  2. JQ属性和css部分测试

    1.attr(name|properties|key,value|fn)  设置或返回被选元素的属性值. <div class="attr">设置或返回被选元素的属性值 ...

  3. libuv在cocos2d-x中的使用

    libuv经过Node.js的实践和应用,已经证明非常之成熟,本来之前项目用的是这个:clsocket https://github.com/DFHack/clsocket  当初选它的主要原因是它支 ...

  4. 【由VerySky原创】由Number Range 导致凭证生成但无法保存的问题

    工厂正常生产,但某天突然发生车辆下线失败销售入库报错( MFBF凭证不能保存\ 下线车无法产生131 )的问题: ST22发现程序dump信息 分析 | SAPSQL_ARRAY_INSERT_DUP ...

  5. hibernate spring annotation setup

    First step setup for the pom.xml with hibernate dependency , hibernate dependency need to before the ...

  6. velocity 显示List和Map方法

    一.遍历个map类型 1.先看后台java程序Java代码     Map<String,String> paramValues=new HashMap<String, String ...

  7. (转)Python rsa 签名与验证 sign and verify

    转自:http://wawehi.blog.163.com/blog/static/143780306201371361120515/ 网上一搜一大把的 python rsa 相关的东西,python ...

  8. 如何升级TeX Live 2014宏包

    转:人大经济论坛 LATEX论坛 版,详细出处参考: http://bbs.pinggu.org/forum.php?mod=viewthread&tid=3370640&page=1 ...

  9. “You must not call setTag() on a view Glide is targeting” 解决

    报错原因大致是因为Glide加载的iamgeView调用了setTag()方法导致的错误, 因为Glide已经默认为ImageView设置的Tag. 解决办法:自定义一个Application,在里面 ...

  10. Retrofit

    Retrofit 标签(空格分隔): 第三方&开源 Retrofit是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordi ...