2017-02-16 111 views
1

我试图将我的Phoenix应用程序推送到Heroku时出现此错误。如何修复“npm ERROR!addLocal无法安装”

我一直在关注guide from the Phoenix framework website

什么是导致此错误,我该如何解决它?

WARNING: phoenix_static_buildpack.config wasn't found in the app 
remote:  Using default config from Phoenix static buildpack 
remote:  Will use the following versions: 
remote:  * Node 6.9.2 
remote:  Will export the following config vars: 
remote:  * Config vars DATABASE_URL 
remote:  * MIX_ENV=prod 
remote: 
remote: -----> Installing binaries 
remote:  Downloading node 6.9.2... 
remote:  Installing Node 6.9.2... 
remote:  Using default npm version 
remote: 
remote: -----> Building dependencies 
remote:  Installing and caching node modules 
remote:  npm ERR! addLocal Could not install /tmp/build_23f60aac277eab15b4ce274dcaf9bb16/deps/phoenix 
remote:  npm ERR! addLocal Could not install /tmp/build_23f60aac277eab15b4ce274dcaf9bb16/deps/phoenix_html 

remote:  npm ERR! Linux 3.13.0-105-generic 
remote:  npm ERR! argv "/tmp/build_23f60aac277eab15b4ce274dcaf9bb16/.heroku/node/bin/node" "/tmp/build_23f60aac277eab15b4ce274dcaf9bb16/.heroku/node/bin/npm" "install" "--quiet" "--unsafe-perm" "--userconfig" "/tmp/build_23f60aac277eab15b4ce274dcaf9bb16/npmrc" 
remote:  npm ERR! node v6.9.2 
remote:  npm ERR! npm v3.10.9 
remote:  npm ERR! path /tmp/build_23f60aac277eab15b4ce274dcaf9bb16/deps/phoenix 
remote:  npm ERR! code ENOENT 
remote:  npm ERR! errno -2 
remote:  npm ERR! syscall open 
remote:   
remote:  npm ERR! enoent ENOENT: no such file or directory, open '/tmp/build_23f60aac277eab15b4ce274dcaf9bb16/deps/phoenix' 
remote:  npm ERR! enoent ENOENT: no such file or directory, open '/tmp/build_23f60aac277eab15b4ce274dcaf9bb16/deps/phoenix' 
remote:  npm ERR! enoent This is most likely not a problem with npm itself 
remote:  npm ERR! enoent and is related to npm not being able to find a file. 
remote:  npm ERR! enoent 
remote:   
remote:  npm ERR! Please include the following file with any support request: 
remote:  npm ERR!  /tmp/build_23f60aac277eab15b4ce274dcaf9bb16/npm-debug.log 
remote: !  Push rejected, failed to compile Phoenix app. 
+0

从输出看来,您的节点已更新,并且npm不是。也许手动更新npm?在这里找到可能的解决方案:https://github.com/npm/npm/issues/10165#issuecomment-152451743 – Migore

+0

我试过这个(发现线程之前问这个问题),它并没有帮助。谢谢你的想法。 –

+0

你尝试过使用sudo吗? – PatNowak

回答

0

我和你以前有同样的问题。尝试添加NPM版本的phoenix_static_buildpack.config文件

下面是从我的应用程序的示例:

phoenix_static_buildpack.config(根)

clean_cache=false 
compile="compile" 
config_vars_to_export=(DATABASE_URL) 
node_version=6.9.5 
npm=3.10.8 
phoenix_relative_path=. 
remove_node=false 

您还可以设置 elixir_buildpack.config(也在根目录中)

erlang_version=18.3 
elixir_version=1.4.0 
always_rebuild=false 
runtime_path=/app