Установите переменную среды, используя аргументы командной строки

Можно ли передавать значения для переменных среды, используя аргументы командной строки?

Например, я хотел бы установить номер версии, который генерируется моим сервером сборки:

aurelia_project / сред / prod.ts

export default {
    debug: false,
    testing: false,
    // $buildVersion$ should be replaced during build with the actual value
    buildVersion: $buildVersion$
};

Воображаемая команда: au build --env prod --buildVersion 1.1.1


редактировать
Поскольку сейчас это кажется невозможным, я создал запрос на функции на страницах Aurelias GitHub.

2 ответа

Решение

По предложению AStoker мне удалось решить это следующим образом:

aurelia_project / сред / prod.ts

export default {
    debug: false,
    testing: false,
    buildVersion: {buildVersion} // <-- Will be replace during build
};

aurelia_project / transpile.js

// ...
import * as replace from 'gulp-replace';

function configureEnvironment() {
    let env = CLIOptions.getEnvironment();
    let buildVersion = CLIOptions.getFlagValue('buildVersion') || '0.0.0';

    return gulp.src(`aurelia_project/environments/${env}.ts`)
        .pipe(changedInPlace({firstPass: true}))
        .pipe(replace('{buildVersion}', buildVersion)) // <-- Replacement happens here
        .pipe(rename('environment.ts'))
        .pipe(gulp.dest(project.paths.root));
}
// ...

Вызов командной строки: au build --buildVersion 1.1.1

В настоящее время это невозможно. Это может быть улучшение в будущем. Я бы рекомендовал подать запрос на улучшение здесь: https://github.com/aurelia/cli/issues/new

Другие вопросы по тегам