繁体   English   中英

指定运行 Aurelia 应用程序时要使用的配置

[英]Specifying the configuration to be used when running an Aurelia application

我使用 Aurelia CLI 中的au new命令创建了一个默认的 Aurelia Typescript 应用程序。

在项目的根目录下,可以找到一个config目录,其中包含environment.jsonenvironment.production.json文件。 我的看起来像这样:

环境.json

{
  "debug": true,
  "testing": true,
  "stringVal": "Hello World"
}

环境.生产.json

{
  "debug": false,
  "testing": false,
  "stringVal": "Hello Production"
}

从命令行运行时,我希望能够在不同的运行中使用不同的配置。 我目前的app.ts和app.html如下:

应用程序.ts

import environment from '../config/environment.json';
export class App {
  public message = environment.stringVal;
}

应用程序.html

<template>
  <h1>${message}</h1>
</template>

为了更好地衡量,我的 main.ts 文件如下:

import {Aurelia} from 'aurelia-framework';
import environment from '../config/environment.json';
import {PLATFORM} from 'aurelia-pal';

export function configure(aurelia: Aurelia): void {
  aurelia.use
    .standardConfiguration()
    .feature(PLATFORM.moduleName('resources/index'));

  aurelia.use.developmentLogging(environment.debug ? 'debug' : 'warn');

  if (environment.testing) {
    aurelia.use.plugin(PLATFORM.moduleName('aurelia-testing'));
  }

  aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app')));
}
  1. 如果不对生产文件的导入进行硬编码,需要对 stringVal 进行哪些代码更改才能从 environment.production.json(或 environment.staging.json 等)读取?
  2. 需要从命令行将哪些标志传递给au run (或npm start )以指定要使用的配置?

根据您的代码,我相信#1 的问题应该已经通过传递给您的运行 function 的正确环境参数来解决。 我的一个建议是制作一个environment.ts文件来为你处理这个问题。 例如。

环境.ts

import env from '../config/environment.json';

function stringVal() {
    return env.stringVal;
}

export { stringVal }

然后在你的 app.ts 你可以做

import { stringVal } from './environment';
export class App {
  public message = stringVal();
}

对于#2的答案,它已在您的问题的评论中提到,但我也会在这里分享。 --env是你要找的这里是我用于我的 Au1 项目的脚本

    "scripts": {
        "analyze": "webpack --env production --analyze",
        "build": "webpack --env production",
        "build:dev": "webpack",
        "build:staging": "webpack --env staging",
        "start": "webpack-dev-server"
    },

我的config文件夹中有一个environment.staging.jsonenvironment.jsonenvironment.production.json ,它们都按预期工作。

希望这可以帮助! 祝你好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM