使用 grunt 读取 webpack 的 .env 文件

Reading webpack's .env files with grunt

我正在使用 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 ?我想这样做是为了避免在 webpack 和 grunt 的每个环境中设置这些变量的重复代码。

谢谢!

您可以使用 dotenv 读取您的 .env 文件,然后将其传递给 grunt 配置。

const dotenv = require('dotenv');

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