我正在尝试将phoenix应用程序部署到heroku但是会出现NPM错误

时间:2016-08-23 08:39:47

标签: node.js heroku elixir phoenix-framework

我一直在关注官方文档,将Elixir 1.3.0版本的凤凰1.2.0应用程序推送到Heroku但是出现以下错误。

remote: Generated pages app
remote: -----> Creating .profile.d with env vars
remote: -----> Writing export for multi-buildpack support
remote: -----> Phoenix app detected
remote: 
remote: -----> Loading configuration and environment
remote:        Loading config...
remote:        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 5.3.0
remote:        Will export the following config vars:
remote:        * Config vars DATABASE_URL
remote:        * MIX_ENV=prod
remote: 
remote: -----> Installing binaries
remote:        Downloading node 5.3.0...
remote:        Installing Node 5.3.0...
remote:        Using default npm version
remote: 
remote: -----> Building dependencies
remote:        Installing and caching node modules
remote:        npm WARN ENOENT ENOENT: no such file or directory, open '/tmp/build_f2aec913d61d8c51889992d9346679be/package.json'
remote:        npm WARN EPACKAGEJSON build_f2aec913d61d8c51889992d9346679be No description
remote:        npm WARN EPACKAGEJSON build_f2aec913d61d8c51889992d9346679be No repository field.
remote:        npm WARN EPACKAGEJSON build_f2aec913d61d8c51889992d9346679be No README data
remote:        npm WARN EPACKAGEJSON build_f2aec913d61d8c51889992d9346679be No license field.
remote:        npm ERR! Linux 3.13.0-93-generic
remote:        npm ERR! argv "/tmp/build_f2aec913d61d8c51889992d9346679be/.heroku/node/bin/node" "/tmp/build_f2aec913d61d8c51889992d9346679be/.heroku/node/bin/npm" "--unsafe-perm" "prune"
remote:        npm ERR! node v5.3.0
remote:        npm ERR! npm  v3.3.12
remote:        npm ERR! path /tmp/build_f2aec913d61d8c51889992d9346679be/package.json
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_f2aec913d61d8c51889992d9346679be/package.json'
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_f2aec913d61d8c51889992d9346679be/npm-debug.log
remote:  !     Push rejected, failed to compile Phoenix app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 

这是elixir_buildpack.config

的内容
elixir_version=1.3.0

任何可能导致错误原因的提示?

2 个答案:

答案 0 :(得分:2)

该项目缺少package.json和brunch-config.js。添加这些文件解决了这个问题。

答案 1 :(得分:1)

如果要覆盖默认值,请在应用的根目录中创建phoenix_static_buildpack.config文件。该文件的语法是bash。

如果未指定config选项,则将使用buildpack的phoenix_static_buildpack.config文件中的默认选项。

这是一个包含所有可用选项的完整配置文件:

# Clean out cache contents from previous deploys
clean_cache=false

# We can change the filename for the compile script with this option
compile="compile"

# Add the config vars you want to be exported here
config_vars_to_export=(DATABASE_URL)

# We can set the version of Node to use for the app here
node_version=5.3.0

# We can set the version of NPM to use for the app here
npm_version=2.10.1

# We can set the path to phoenix app. E.g. apps/phoenix_app when in umbrella.
phoenix_relative_path=.

完成instructions