我决定使用vinyl-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时显示我的凭据。我该如何做到这一点?
由于
答案 0 :(得分:0)
您可以将它们作为run args传递:
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是全局安装的,请使用gulp
代替npm run gulp
。
在程序启动时通过args传递凭据是一种很好的做法。