Blazing fast vinyl adapter for FTP.Supports parallel transfers, conditional transfers, buffered or streamed files, and more.Often performs better than your favorite desktop FTP client.
Nice and gulpy deployment task:
var gulp = require( 'gulp' );
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' );
gulp.task( 'deploy', function () {
var conn = ftp.create( {
host: 'mywebsite.tld',
user: 'me',
password: 'mypass',
parallel: 10,
log: gutil.log
} );
var globs = [
'src/**',
'css/**',
'js/**',
'fonts/**',
'index.html'
];
// using base = '.' will transfer everything to /public_html correctly
// turn off buffering in gulp.src for best performance
return gulp.src( globs, { base: '.', buffer: false } )
.pipe( conn.newer( '/public_html' ) ) // only upload newer files
.pipe( conn.dest( '/public_html' ) );
} );
Without Gulp:
var fs = require( 'vinyl-fs' );
var ftp = require( 'vinyl-ftp' );
var conn = new ftp( /* ... */ );
fs.src( [ './src/**' ], { buffer: false } )
.pipe( conn.dest( '/dst' ) );
Remember not to push FTP credentials to public repos!
var ftp = require( 'vinyl-ftp' )
Return a new vinyl-ftp
instance with the given config. Config options:
true
for secured FTP connections{ rejectUnauthorized: false }
for self-signed or expired secure FTP connectionsYou can override parallel
and reload
per stream in their options
.
var conn = ftp.create( config )
Returns a vinyl file stream that emits remote files matched by the givenglobs.The remote files have a file.ftp
property containing remote information.Possible options:
/
.Glob-related options are documented at minimatch.
Returns a transform stream that transfers input files to a remote folder.All directories are created automatically.Passes input files through.
Returns a transform stream that sets remote file permissions for each file.mode
must be a string between '0000' and '0777'.
Returns a transform stream which filters the input for fileswhich are newer than their remote counterpart.
Returns a transform stream which filters the input for fileswhich have a different file size than their remote counterpart.
See above.
Returns a transform stream that filters the input using a callback.The callback should be of this form:
function ( localFile, remoteFile, callback ) {
// localFile and remoteFile are vinyl files.
// Check remoteFile.ftp for remote information.
// Decide wether localFile should be emitted and call callback with boolean.
// callback is a function( error, emit )
callback( null, emit );
}
Deletes a file.
Removes a directory, recursively.
Globs remote files, tests if they are locally available at <local>/<remote.relative>
and removes them if not.
CONFIG=test/config/yourserver.json npm test
前端小菜鸡一枚,总结项目中发现的小技巧,有什么不对和错误希望各位指出和补充,谢谢大家观看! ························································································································· 最近项目中,要求用ftp协议直接将打包后部署到服务器,
请先明白一点,HTTP上传和FTP上传是不一样的,HTTP上传会带有头文件等等,你得分析,也就是通过网页上传。通过FTP上传不用,因为他不会带头文件,操作方式其实就和你在本地操作一个文件复制到另外一个地方没有什么区别,只是使用的类不一样而已。 下面是具体实现的原文件: import java.io.File; import java.io.FileInputStream; import su