cURL 和 shell 任务

cURL and shell task

我在我的项目中使用 gulpfile.js 下载文件,它工作正常。

var shell = require('gulp-shell');
gulp.task('folder_xyz', shell.task('curl --output xyz.zip --header "PRIVATE-TOKEN: theyuuin_io2_kj" "https://example.com/api/v4/download?job=xyz"'));

这里一切正常,我可以下载文件。但是我在 GitLab 中设置了名为 download_folder_xyz 的环境变量。现在我想使用这个环境,想用 gulp.task() 中的新变量 download_folder_xyz 替换 Private token 我该怎么做?

您可以通过 process.env 对象访问 nodejs 中的任何环境变量。 让我们看一个例子。 假设您要访问 download_folder_xyz 这是一个环境变量

var shell = require('gulp-shell');
gulp.task('folder_xyz', shell.task(`curl --output xyz.zip --header "PRIVATE-TOKEN: ${process.env.download_folder_xyz}" "https://example.com/api/v4/download?job=xyz"`));

如果 download_folder_xyz 已成功设置为环境变量,您可以从 process.env 中检索它。 process 核心模块的 env 属性 在进程启动时托管所有环境变量。有关详细信息,请参阅 docs

您可以像使用任何其他变量一样使用环境变量并在任务字符串中插入。要替换私有令牌,这是更新后的代码:

const { download_folder_xyz } = process.env;

var shell = require('gulp-shell');
gulp.task('folder_xyz', shell.task(`curl --output xyz.zip --header "PRIVATE-TOKEN: ${download_folder_xyz}" "https://example.com/api/v4/download?job=xyz"`));