自动化部署前端代码 - grunt-ftp-deploy的使用
每一次修改完代码之后,要部署到远程的服务器,我的操作步骤是:
修改代码 –> grunt build –> 打开FileZilla –>登录ftp服务器 –>找到本地文件夹 –> 找到远程服务器目标文件夹 –>全选本地文件 –> 上传
因为部署代码,在某个时候会特别频繁.每一次都要重复上面的八个操作.表示要做点什么,改变一下.
今天我们的主角:grunt-ftp-deploy
如果是sftp可以使用grunt-sftp-deploy
安装:
npm install grunt-ftp-deploy --save-dev
or
npm install grunt-sftp-deploy --save-dev
在与Gruntfile文件同一目录,我们新建一个”.ftppass”的文件, 里面是ftp的授权信息, 内容如下:
{
"key1": {
"username": "username",
"password": "password"
}
}
Gruntfile配置代码:
//ftp-deploy
grunt.initConfig({
'ftp-deploy': {
build: {
auth: {
host: '192.168.1.245', //ftp服务器的ip地址
port: 21,//服务器端口
authKey: 'key1'//.ftppass文件里,key1的授权信息
},
src: 'path/to/source/folder',//本地文件夹
dest: '/path/to/destination/folder',//服务器的目标文件夹
exclusions: ['path/to/source/folder/**/.DS_Store']//不上传的文件
}
}
})
or
//sftp-deploy
grunt.initConfig({
'sftp-deploy': {
build: {
auth: {
host: '192.168.1.245', //ftp服务器的ip地址
port: 21,//服务器端口
authKey: 'key1'//.ftppass文件里,key1的授权信息
},
cache: 'false',
src: 'path/to/source/folder', //本地文件夹
dest: '/path/to/destination/folder', //服务器的目标文件夹
serverSep: '/',//服务器的相对路径
localSep: '/',//本地的相对路径
concurrency: 20,//每次上传多少个文件
progress: true //是否显示进度条
}
}
})
加载task
grunt.loadNpmTasks('grunt-ftp-deploy');
or
grunt.loadNpmTasks('grunt-sftp-deploy');
在控制台输入:
grunt ftp-deploy
or
grunt sftp-deploy
这样,文件就会自动上传到目标服务器了
但是,这样还是不够方便,把task加入到 build里面
grunt.registerTask('build', [
'clean:dist',
'useminPrepare',
'concurrent:dist',
'postcss',
'ngtemplates',
'concat',
'copy:dist',
'ngAnnotate',
'cssmin',
'usemin',
'htmlmin',
'compress',
'ftp-deploy'//--> 我在这里
]);
那我们现在部署代码的步骤就是:
修改代码 –> grunt build
今天就到这里.
微信公众号
