jlfenaux
jlfenaux

Reputation: 3291

I'm trying to deploy a phoenix app to heroku but get an NPM error

I've been following the official docs to push the an phoenix 1.2.0 app using Elixir version 1.3.0 to Heroku but get the following error.

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: 

This is the content of the elixir_buildpack.config

elixir_version=1.3.0

Any hint on what may be the cause of the error?

Upvotes: 1

Views: 904

Answers (2)

jlfenaux
jlfenaux

Reputation: 3291

The project lacked a package.json and brunch-config.js. Adding those files solved the problem.

Upvotes: 2

Muhammad Shahzad
Muhammad Shahzad

Reputation: 9652

Create a phoenix_static_buildpack.config file in your app's root dir if you want to override the defaults. The file's syntax is bash.

If you don't specify a config option, then the default option from the buildpack's phoenix_static_buildpack.config file will be used.

Here's a full config file with all available options:

# 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=.

Here is complete instructions

Upvotes: 1

Related Questions