Винил-фтп скрыть проблему с учетными данными
Я решил использовать винил-ftp для моего процесса развертывания в gulp. Одна вещь, которую я хотел бы сделать, это иметь отдельный файл с моими учетными данными ftp:
- хозяин
- пользователь
пароль
и поместите этот файл в мой.gitignore. И затем я хочу, чтобы эти учетные данные в этом файле были прочитаны моей переменной соединения в моем файле gulp. Мой код развертывания следующий:
gulp.task( 'deploy', function () { var conn = ftp.create( { host: 'yourdomain.com', user: 'ftpusername', password: 'ftpuserpassword', parallel: 10, log: gutil.log } ); var globs = [ 'dist/**' ]; return gulp.src( globs, { base: './dist/', buffer: false } ) .pipe( conn.newer( 'yourdomain.com' ) ) .pipe( conn.dest( 'yourdomain.com' ) ); } );//end deploy
Поэтому я хочу, чтобы значения переменных yourdomain.com для хоста, ftpusername для пользователя и ftpuserpassword для пароля читались из отдельного файла, чтобы мои учетные данные отображались при выполнении git push. Как мне это сделать?
Спасибо
1 ответ
Вы можете передать их как аргументы выполнения:
var
gulp = require('gulp'),
args = require('yargs').argv;
const distDir = "./dist";
gulp.task('deploy', function() {
var conn = ftp.create({
host: args.host,
user: args.user,
password: args.password,
parallel: 10,
log: flog // .log
});
var globs = [
distDir + '/**',
distDir + '/.htaccess',
];
return gulp.src(globs, {buffer: false})
.pipe(conn.dest(args.remotedir));
});
Затем вызовите его из командной строки или поместите строку в командный файл: npm run gulp deploy -- --host=hostname --user=username --password=password --remotedir=/path/to/folder/on/server
, использование gulp
вместо npm run gulp
если gulp установлен глобально.
Это хорошая практика для передачи полномочий через аргументы при запуске программы.