Чтение .env файлов веб-пакета с grunt - PullRequest
1 голос
/ 30 марта 2020

Я использую grunt-replace для выполнения некоторых подстановок переменных в соответствии с окружением (dev / testing / production). Эти переменные установлены следующим образом:

config: {
            dev: {
                options: {
                    variables: {
                        base_url: 'localhost'
                    }
                }
            },
            testing: {
                options: {
                    variables: {
                        base_url: 'testing.example.com'
                    }
                }
            },
            prod: {
                options: {
                    variables: {
                        base_url: 'production.example.com'
                    }
                }
            }
        },

Затем я заменяю переменные на grunt-replace , например:

replace: {
            main: {
                options: {
                    patterns: [
                        {
                            match: 'BASE_URL',
                            replacement: '<%= grunt.config.get("base_url") %>'
                        }
                    ]
                },
                src: 'src/main.js' ,
                dest: 'dist/main.js'
            },
}

Так как я используя файл .env, сконфигурированный для упомянутых сред, можно ли сказать grunt-env загрузить этот файл и выполнить замены вместо grunt-config ? Я хотел бы сделать это, чтобы избежать дублирования кода для установки этих переменных в каждой среде как в веб-пакете, так и в grunt.

Спасибо!

1 Ответ

1 голос
/ 02 апреля 2020

Вы можете прочитать ваш файл .env, используя dotenv , а затем передать его в конфигурацию grunt.

const dotenv = require('dotenv');

const envConfig = dotenv.config({ path: '/custom/path/to/.env' }).parsed;
...