[英]Specifying the configuration to be used when running an Aurelia application
我使用 Aurelia CLI 中的au new
命令创建了一个默认的 Aurelia Typescript 应用程序。
在项目的根目录下,可以找到一个config
目录,其中包含environment.json
和environment.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')));
}
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.json
, environment.json
, environment.production.json
,它们都按预期工作。
希望这可以帮助! 祝你好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.