代码之家  ›  专栏  ›  技术社区  ›  jlfenaux

我正在尝试将phoenix应用程序部署到heroku,但收到NPM错误

  •  1
  • jlfenaux  · 技术社区  · 8 年前

    我一直在跟踪官方文档,将使用Elixir 1.3.0版的phoenix 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 回复  |  直到 8 年前
        1
  •  2
  •   jlfenaux    8 年前

        2
  •  1
  •   Muhammad Shahzad    8 年前

    创建phoenix_static_buildpack。如果要覆盖默认值,请在应用程序的根目录中配置文件。该文件的语法为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