我对节点包和版本兼容性不太熟悉,但从您共享的日志来看,您正在使用的名为amdefine的节点包之一似乎存在问题:
npm ERR! Failed to parse json
npm ERR! Unexpected end of input
npm ERR! File: /home/deploy/.npm/amdefine/0.1.0/package/package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! This is not a bug in npm.
npm ERR! Tell the package author to fix their package.json file. JSON.parse
npm ERR! System Linux 3.14.26-24.46.amzn1.x86_64
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--production"
npm ERR! cwd /srv/www/my_api/releases/20141214002817
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.14
npm ERR! file /home/deploy/.npm/amdefine/0.1.0/package/package.json
正如您可能发现的那样,它可以通过npm cache clean
或通过更改 nodejs 的版本来修复。
要添加命令npm cache clean
,您必须创建新配方或将其添加到您的包装食谱中。唯一应该满足的是这个命令应该在安装节点之后和安装包之前。
如果你想改变版本,你可以检查默认的nodejs recepie,你可以看到安装的nodejs的requred版本在那个cookbook的属性文件中定义。
default[:opsworks_nodejs][:version]
所以你可以用属性覆盖默认值。