Команда в package.json для настройки среды - PullRequest
0 голосов
/ 12 июня 2019

Используя Angular 7, мне нужна команда, которую я могу нажать в командной строке / терминале, как подача пряжи --SERVER_API_URL = 'https://localhost:8000',, но мне не нужно записывать жестко закодированные значения в SERVER_API_URL в моемкод.

Я пытался написать команду в package.json "serve: dev": "export NODE_ENV = development && yarn run webpack: dev-run", но все равно я получаю сервер localhost вместо сервера dev вроде "dev.hello.net».и аналогичные для тестовой среды и производства.

export const SERVER_API_URL = process.env.SERVER_API_URL;
"serve:dev": "export NODE_ENV=development && yarn run webpack:dev-run",
 plugins: [
        new webpack.DefinePlugin({
            'process.env': {
                NODE_ENV: `'${options.env}'`,
                DEBUG_INFO_ENABLED: options.env === 'development',
                SERVER_API_URL: `''`
            }
        }),
        new CleanWebpackPlugin(utils.root('../public/app'), {root: utils.root(), verbose: true}),
        new CopyWebpackPlugin([
            {
                from: './src/assets',
                to: 'assets',
                ignore: ['images/**/*', 'fonts/**/*']
            },
        ]),

1 Ответ

0 голосов
/ 12 июня 2019

вам нужно внести изменения в ваш файл webpack.config.js для принятия значений env. для этого найдите раздел плагинов и внесите изменения, подобные следующим

webpack.config.js

plugins: [
            // Define useful constants like TNS_WEBPACK
            new webpack.DefinePlugin({
                "global.TNS_WEBPACK": "true",
                // "process": undefined,
                'process.env': {
                    'buildmode': JSON.stringify(env && env.buildmode ? env.buildmode : "")                   
                    // etc, these are just examples
                }
            })
]

, поэтому при запуске приложения используйте следующие параметры с командой ng

--env.buildmode='Production'

извлекает переменные env в ваших угловых приложениях.

declare var process: any;
export class test{
constructor(){
 console.log('env variables', this.getEnvironmentVars('buildmode'));
}

private getEnvironmentVars(key: string): string {
    console.log('process', process);
    if (typeof process !== 'undefined' && process && process.env) {
      return process.env[key];
    } else {
      return BuildMode.DEVELOPMENT
    }
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...