【问题标题】:What's necessary when deploying an Aurelia/Node application?部署 Aurelia/Node 应用程序时需要什么?
【发布时间】:2016-08-03 18:42:48
【问题描述】:

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

另外,连同 json 文件,我们是否需要将 config.js 推送到生产环境?

编辑

我刚刚运行 gulp export,它会生成一个导出文件夹,其中包含以下内容:

  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
      }
    }
  }
};

我很困惑为什么它没有加载我的 nprogress 栏。我得到了 404,它正在搜索 appName/jspm_packages/github/rstacruz-nprogress。为什么它不自动将其配置为捆绑/导出?如何将其修复为自动包含我引入的所有库的位置?

【问题讨论】:

    标签: json node.js web-deployment aurelia


    【解决方案1】:

    运行命令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 文件中,并且可以在生产环境中运行。

    【讨论】:

    • 它是如何工作的?当您运行 gulp export 时,是否会将 node_modules javascript 文件迁移到文件夹中?我一直在运行命令时出错,所以我目前无法查看该文件夹
    • 简而言之,gulp bundle 将复制您需要的所有 node_modules/jspm_packages 文件并将它们合并到一个或多个文件中。 gulp export 将在后台运行 gulp bundle,复制一些必要的文件(index.html、config.js 等),最后将它们导出到“导出”文件夹。
    • 好吧,我让它工作了……有点。导出文件夹有一个 dist 和 jspm_packages 文件夹以及一个 config.js 和 index.html 文件。出于某种原因,我的 css 文件出现 404 并加载进度条。 jspm_packages 文件夹几乎没有我拥有的软件包数量。它唯一加载的是 twbs、bluebird 和 font-awesome。我需要更改哪些内容才能加载我的所有包?
    • 几乎就像它唯一导出的包是骨架附带的包
    • 不不不,导出文件夹内的 jspm_packages 文件夹包含您需要的所有文件。要解决您的问题,您必须更新 build 文件夹中的 bundles.js 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    • 2018-09-10
    • 2014-04-18
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多