在我的工作中,我们有多个开发人员使用远程开发服务器进行测试和新开发。我想在这台服务器上使用Gulp进行前端构建。
我将项目从远程服务器复制到本地环境并创建了一个Gulp项目。本地一切正常......问题是:如何将其传输到远程开发服务器?我可以复制gulpfile,但是如何从远程服务器执行任务以在该环境中部署?
这是我的gulpfile:
// modules
const gulp = require('gulp');
const concat = require('gulp-concat');
const deporder = require('gulp-deporder');
const stripdebug = require('gulp-strip-debug');
const uglify = require('gulp-uglify');
const autoprefixer = require('gulp-autoprefixer');
const cssnano = require('gulp-cssnano');
// globals
var devBuild = (process.env.NODE_ENV !== 'production');
// sources
var project = {
src: {
base: 'src/',
headScripts: [
'src/js/general.js',
'src/js/showhide.js',
'src/js/validate-creditcard.js',
'src/js/validate-Ascii.js',
'src/js/functions.js',
'src/js/parent-child-checker.js',
'src/js/checkForm/checkName.js',
'src/js/checkForm/checkAddress.js',
'src/js/checkForm/checkContact.js',
'src/js/checkForm/checkProfessional.js',
'src/js/checkForm/checkMembership.js',
'src/js/checkForm/checkPersonalForm-prof.js'
],
css: [
'src/css/bootstrap.min.css',
'src/css/blessed.css',
'src/css/form-responsive.css'
]
},
build: 'dist/'
};
// JavaScript processing
gulp.task('js', function() {
var jsbuild = gulp.src(project.src.headScripts)
.pipe(deporder())
.pipe(concat('main.js'));
if (!devBuild) {
jsbuild = jsbuild
.pipe(stripdebug())
.pipe(uglify());
}
return jsbuild.pipe(gulp.dest(project.build + 'js/'));
});
// CSS processing
gulp.task('css', function() {
var cssbuild = gulp.src(project.src.css)
.pipe(concat("main.css"))
.pipe(autoprefixer());
if (!devBuild) {
cssbuild = cssbuild
.pipe(cssnano());
}
return cssbuild.pipe(gulp.dest(project.build + 'css/'));
});
// default task
gulp.task('default', ['js', 'css'], function() {
// javascript changes
gulp.watch(project.src.base + 'js/**/*', ['js']);
// css changes
gulp.watch(project.src.base + 'css/**/*', ['css']);
});
我知道你可以使用rsync创建一个Gulp任务,通过像this one这样的ssh部署到远程服务器,但这不是我想要的。多个开发人员直接在远程服务器上进行开发 - 将所有内容复制到本地并尝试维护它与远程开发服务器之间的同步将是一个容易出错的负担。另外,如果其他开发人员只在本地工作,他们将如何运行这些任务呢?