在 heroku 中部署 Loopback 4,找不到 lb-tsc 错误

Loopback 4 deployment in heroku, lb-tsc not found error

我正在尝试将环回 4 应用程序部署到 heroku 中。 但是在发布它之后 npm-start 命令在 heroku 控制台中不起作用。 它的投掷 sh: 1: 未找到 lb-tsc。 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"
  }

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

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

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

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

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

确保 heroku 在您的终端中有一个 nodeJs builpack 运行

heroku buildpacks:set heroku/nodejs

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

web: node index.js

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

"heroku-postbuild": "npm run build"

希望对您有所帮助!

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

下面的步骤对我来说很好

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

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

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