【问题标题】:Loopback 4 deployment in heroku, lb-tsc not found errorHeroku 中的 Loopback 4 部署,找不到 lb-tsc 错误
【发布时间】:2020-12-01 22:29:47
【问题描述】:

我正在尝试将 loopback 4 应用程序部署到 heroku 中。 但是在发布后 npm-start 命令在 heroku 控制台中不起作用。 它的投掷 sh: 1: lb-tsc not found。 package.json如下

"devDependencies": {
"@loopback/build": "^3.0.0",
"@loopback/eslint-config": "^5.0.0",
"@loopback/testlab": "^1.10.0",
"@types/node": "^10.17.6",
"@typescript-eslint/eslint-plugin": "^2.10.0",
"@typescript-eslint/parser": "^2.10.0",
"eslint": "^6.7.2",
"eslint-config-prettier": "^6.7.0",
"eslint-plugin-eslint-plugin": "^2.1.0",
"eslint-plugin-mocha": "^6.2.2",
"source-map-support": "^0.5.16",
"typescript": "~3.7.3"},
"scripts": {
    "build": "lb-tsc",
    "build:watch": "lb-tsc --watch",
    "clean": "lb-clean dist *.tsbuildinfo",
     .......
    "lb-tsc": "lb-tsc",
    "postinstall": "npm run lb-tsc"
  }

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题
  • 没有。仍然,我有错误
  • 在下面查看我的答案,它对我有用。

标签: node.js typescript strongloop loopback4


【解决方案1】:

heroku 运行节点应用程序时,process.env.NODE_ENV 的值为“生产”,您可以通过输入 node 然后从 heroku 终端 bash 中检查它,然后输入 process.env 这意味着没有解决开发依赖关系。

以下步骤对我来说很好

  1. 打开 package.json 文件,从 dev 依赖部分复制所有内容并将其粘贴到 package.json 中的依赖部分
  2. git 添加。然后 git commit 然后 git push heroku master

另一种解决方案: 使用 git push heroku master 将文件推送到 heroku 后,从 https://dashboard.heroku.com/ 转到 heroku 终端并启动控制台,然后运行命令 node dist/index.js 所以这个命令将启动 loopBack 应用程序,确保 dist 文件夹是可用。

【讨论】:

    【解决方案2】:

    我尝试了很多解决方案,当我执行以下操作时它会起作用:

    确保 heroku 有一个 nodeJs 构建包在你的终端中运行

    heroku buildpacks:set heroku/nodejs

    然后,在项目的根目录下创建一个 Procfile 并添加:

    web: node index.js

    最后添加一个heroku-postbuild脚本:

    "heroku-postbuild": "npm run build"

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      在包含web: node . 的项目的根目录中创建Procfile 为我解决了这个问题。没有它,Heroku 将默认通过调用 npm run 来启动应用程序,它会尝试运行构建过程,并且由于 @loopback/build 默认设置为开发依赖项,这会导致 lb-tsc not found 错误。

      【讨论】:

      • 这应该是正确且被接受的答案!
      【解决方案4】:

      尝试在命令行安装:
      npm i -g @loopback/cli npm i -g @loopback/build

      我在 macos 中通过命令行使用它。

      【讨论】:

        【解决方案5】:

        我在某个地方读到了 Procfile 中的 web: slc run 替换为 web: node .,它似乎在 Heroku 中工作!我确实看到了资源管理器,并且可以使用所有端点。

        我在这个 Github 问题中也提到了这一点: https://github.com/strongloop/loopback.io/issues/810

        【讨论】:

          猜你喜欢
          • 2021-03-17
          • 2019-01-27
          • 2014-03-22
          • 2015-12-07
          • 2016-12-25
          • 2021-08-17
          • 1970-01-01
          • 1970-01-01
          • 2018-11-07
          相关资源
          最近更新 更多