【问题标题】:Run npm package from rails app on heroku从 heroku 上的 rails 应用程序运行 npm 包
【发布时间】:2017-03-01 23:22:23
【问题描述】:

在我的 rails 应用程序中,我有一个运行以下内容的模块:

system("osmtogeojson #{input_path} > #{output_path}")

这适用于我的本地机器,因为我安装了特定的 npm 包 (osmtogeojson)。我在 Heroku 上部署了我的应用程序,但我无法让 Heroku 安装 NPM 或我的 NPM 包。

我按照教程 here 并添加了一个 packages.json 以及运行

heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git

并使用以下命令创建 .buildpacks 文件:

https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-ruby

当我部署到 Heroku 时,我看不到它使用我的依赖项运行 npm install,并且我调用 npm 包的代码不起作用。我在这里做错了什么?

【问题讨论】:

  • 你试过向heroku寻求帮助吗?可能是你最好的选择......
  • @TarynEast 我还没有......不是一个坏主意。如果我得到答案,我会联系并发布答案。

标签: ruby-on-rails heroku npm


【解决方案1】:

这篇文章有点过时了。您不再需要像 heroku-buildpack-multi 这样的东西来配置多个构建包。此外,该项目已被弃用。从您的应用程序中删除它并添加官方构建包heroku/nodejsheroku/ruby。首先添加 nodejs 通常是个好主意。然后尝试重新部署您的应用程序。

如果它不起作用,请尝试使用 heroku run bash 登录到您的应用程序 dyno 并验证您是否确实拥有 package.json。检查它是否在某个地方没有被忽略,例如.gitignore.slugignore

如果仍然无法正常工作,则可能是您添加了所需的包作为开发依赖项。如果是这样,请将配置变量 NPM_CONFIG_PRODUCTION 设置为 false

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我以为我一开始就这样做了,但为了记录,这确实奏效了。

    • 在我的 repo 中,我运行并完成了$npm init 的步骤
    • 添加了我需要的npm包$npm install osmtogeojson --save
    • 将我的 buildpack 添加到 heroku $heroku config:add heroku/nodejs
    • 将我的 repo 推送到 heroku $git push heroku master

    现在可以了!

    【讨论】:

    • 控制台提示:“heroku/nodejs 无效。格式必须为 FOO=bar。”
    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多