Если вы используете gulp, похоже, что вы можете использовать любой заменитель строки gulp, например gulp-replace .
Что касается написания заданий gulp.Если вы хотите сначала импортировать среду в свою оболочку, перед запуском узла вы можете получить доступ к среде через process.env
gulp.task('build', function(){
gulp.src(['example.js'])
.pipe(replace('MY_API_KEY', process.env.MY_API_KEY))
.pipe(gulp.dest('build/'));
});
Если вы не хотите импортировать файлы среды перед запуском узла,вы можете использовать библиотеку типа env2 для чтения файлов среды оболочки.
Другой вариант - использовать js / json для определения этих файлов среды и загружать их с помощью require.
prod-env.js
{
"MY_API_KEY": "api_key"
}
gulpfile.js
const myEnv = require('./prod-env')
gulp.task('build', function(){
gulp.src(['example.js'])
.pipe(replace('MY_API_KEY', myEnv.MY_API_KEY))
.pipe(gulp.dest('build/'));
});
Кроме того, для более общей, зацикленной версии замены вы можете сделать:
gulp.task('build', function () {
stream = gulp.src(['example.js']);
for (const key in process.env) {
stream.pipe('${' + key + '}', process.env[key]);
}
stream.pipe(gulp.dest('build/'));
});
В последнем примере я добавил ${}
вокруг имени переменной среды, чтобы сделать его менее подверженным авариям.Таким образом, исходный файл становится:
const myApiKey = ${MY_API_KEY}