部署 Aurelia/Node 应用程序时需要什么?

What's necessary when deploying an Aurelia/Node application?

我已经构建了一个 Aurelia 应用程序,但我不确定需要将什么推送到生产服务器。我已经阅读了有关 Node 的内容,并且开始更加了解它。如果我们只是推送 dist 文件夹(捆绑文件夹)、index.html 和 package.json,服务器会自动使用 json 文件来拉下适当的包吗?还是我们必须 运行 npm install 在服务器的 CLI 上才能下载这些包?如果我们必须这样做,那么我假设我们必须对 jspm 做同样的事情。

此外,除了 json 文件,我们是否需要将 config.js 推送到生产环境?

编辑

我只是 运行 gulp 导出,它生成一个包含以下内容的导出文件夹:

  1. dist 文件夹
  2. jspm_packages 文件夹
  3. config.js
  4. index.html
  5. favicon.ico

我复制了所有这些文件并将它们投入生产。第一个错误我在 main.js

上收到 404

这是我的 bundles.js 文件

module.exports = {
  "bundles": {
    "dist/app-build": {
      "includes": [
        "[**/*.js]",
        "**/*.html!text",
        "**/*.css!text"
      ],
      "options": {
        "inject": true,
        "minify": true,
        "depCache": true,
        "rev": false
      }
    },
    "dist/aurelia": {
      "includes": [
        "aurelia-framework",
        "aurelia-bootstrapper",
        "aurelia-fetch-client",
        "aurelia-router",
        "aurelia-animator-css",
        "aurelia-templating-binding",
        "aurelia-polyfills",
        "aurelia-templating-resources",
        "aurelia-templating-router",
        "aurelia-loader-default",
        "aurelia-history-browser",
        "aurelia-logging-console",
        "bootstrap",
        "bootstrap/css/bootstrap.css!text",
        "fetch",
        "jquery"
      ],
      "options": {
        "inject": true,
        "minify": true,
        "depCache": false,
        "rev": false
      }
    }
  }
};

我很困惑为什么它没有加载我的进度条。我在搜索 appName/jspm_packages/github/rstacruz-nprogress 时收到 404。为什么它不自动将其配置为 bundled/exported?如何将其修复到自动包含我引入的所有库的位置?

运行 命令 gulp export。它将捆绑应用程序并将必要的文件(index.html、config.js 等)复制到 export 文件夹。然后,只需将导出文件夹复制到服务器即可。生产中不需要安装包。

编辑

当您安装一个软件包时,例如 nprogress,您必须将它包含到其中一个捆绑文件中。捆绑包在 build/bundles.js 中配置。 aurelia 导航骨架带有 2 个配置包,一个用于 aurelia 库,一个用于应用程序的其余部分。如果需要,您还可以创建更多捆绑包。要将包添加到捆绑文件中,只需将其名称添加到特定数组中,例如:

//...
"dist/aurelia": {
      "includes": [
        "aurelia-framework",
        "aurelia-bootstrapper",
        "aurelia-fetch-client",
        "aurelia-router",
        "aurelia-animator-css",
        "aurelia-templating-binding",
        "aurelia-polyfills",
        "aurelia-templating-resources",
        "aurelia-templating-router",
        "aurelia-loader-default",
        "aurelia-history-browser",
        "aurelia-logging-console",
        "bootstrap",
        "bootstrap/css/bootstrap.css!text",
        "fetch",
        "jquery",
        "nprogress"
      ],
//...

在上面的示例中,我将 nprogress 添加到 aurelia 包中。您可以将其添加到 app-build 捆绑包中,甚至可以为 nprogress 创建另一个捆绑包。

现在,当您 运行 gulp export 时,nprogress 将被捆绑到 aurelia-######.js 文件中,并且可以在生产环境中使用。