使用 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;
我正在使用 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;