Выберите правильный environment.ts в веб-пакете - PullRequest
0 голосов
/ 20 ноября 2018

Внутри моего webpack.config.js я возвращаю правильный файл конфигурации webpack на основе переданного env:

module.exports = (env) => {
    return require(`./webpack.${env}.js`)
};

Внутри моего webpack.prod.js:

module.exports = {
    entry: './src/app.ts',
    target: 'node',
    module: {
        rules: [{test: /.tsx?$/, use: 'ts-loader'}]
    },
    mode: 'production',
    resolve: {
       extensions: ['.tsx', '.ts', '.js'],
    },
    output: {
        path: path.join(__dirname, 'dist'),
        filename: 'app.js',
    }
};

Тогда у меня внутри / src / сред, два файла окружения:

environment.ts
environment.prod.ts

В любых других моих службах я называю среду:

import {environment} from '../environments/environment';

На самом деле я получил эту идею от angular-cli. И я хотел бы также использовать это в node.js. У меня вопрос: как мне указать в веб-пакете переименование environment.prod.ts и использовать его при сборке для производства?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Так вот, что я и сделал, и это работает, как я ожидал.Сначала я устанавливаю file-replace-loader, затем я изменил веб-пакет следующим образом:

const {resolve} = require('path');
...
module: {
    rules: [{
        test: /.tsx?$/, 
        use: 'ts-loader'
    },{
        test: /environment\.ts?$/,
            loader: 'file-replace-loader',
            options: {
                condition: true,
                replacement: resolve('./src/environments/environment.prod.ts'),
                async: true
            }
       }
    ]
    ...       

Я установил условие на true, так как я изменяю webpack.prod.js.

0 голосов
/ 20 ноября 2018

В специфическом контексте среды узла переключается с переменной NODE_ENV

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