如何部署解析服务器的提交?

How to deploy a commit of parse server?

如何在 AWS EB 上部署特定的解析服务器提交?

我试过:

  1. 将 parse-server-example 的 package.json 更改为:

    "dependencies":{ "parse-server": "parse-community/parse-server#commit-hash" }

  2. 运行 npm install

  3. 部署到 AWS EB

服务器启动失败,出现错误:

Error: Cannot find module '/var/app/current/node_modules/parse-server/lib/index.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (internal/modules/cjs/loader.js:316:19)
    at Function.Module._findPath (internal/modules/cjs/loader.js:705:18)
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:969:27)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/var/app/current/index.js:10:19)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32) {
  code: 'MODULE_NOT_FOUND',
  path: '/var/app/current/node_modules/parse-server/package.json',
  requestPath: 'parse-server'

当我不将依赖项指向提交时它起作用,但它不适用于提交 - 为什么?

如果您查看 Parse Server GitHub 存储库,您会发现那里没有 lib/ 文件夹。 lib/ 位于 .gitignore 文件中,您只能在 npm 包中找到它。这就是当您尝试直接从 GitHub 存储库安装时失败的原因。

解决方法是:

  1. 在您自己的 GitHub 帐户中创建 Parse Server 存储库的分支。
  2. 克隆你自己的分支。
  3. 重置为您需要的提交,运行 npm install
  4. .gitignore 中删除 lib/ 文件夹,提交,并将其推送到您自己的分支。
  5. 再次尝试您描述的过程,但从您自己的 GitHub 分支安装。

确保 npm install 不是 运行 在 root 下,而是在非特权用户下。 root 下的 运行 将中断使用 babel 将 src/ 编译为 lib/ 所需的 npm prepare 步骤。