gulp 构建项目
dist/ 经过打包压缩后的文件,一般用于正式环境使用
src/ 源代码,一般用于开发环境
源码构建
安装完成后,(module 项目根目录)执行命令:gulp
即可完成 src 到 dist 目录的构建
源码安装
项目可采用 gulp 构建,gulpfile.js 是任务脚本,package.json 是任务配置文件
step1:确保你的电脑已经安装好了 Node.js
step2: 命令行安装 gulp:npm install gulp -g
step3:切换到 module 项目根目录(即 gulpfile.js 所在目录),命令行安装任务所依赖的包:npm install
配置
/**
* gulp 构建
* 文件名:gulpfile.js
*/
var pkg = require('./package.json'),
inds = pkg.independents,
gulp = require('gulp'),
uglify = require('gulp-uglify'),
minify = require('gulp-minify-css'),
concat = require('gulp-concat'),
rename = require('gulp-rename'),
replace = require('gulp-replace'),
header = require('gulp-header'),
del = require('del'),
gulpif = require('gulp-if'),
minimist = require('minimist');
// 获取参数
var argv = require('minimist')(process.argv.slice(2), {
default: {
ver: 'all'
}
}),
//注释
note = [
'/** <%= pkg.name %>-v<%= pkg.version %> <%= pkg.license %> License By <%= pkg.author %> */\n <%= js %>',
{pkg: pkg, js: ';'}
],
destDir = './dist', //构建的目标目录
// 任务
task = {
//压缩 JS
minjs: function(){
var src = [
'./src/**/*.js',
'!./src/config.js',
'!./src/extend/**/*.js',
];
return gulp.src(src).pipe(uglify())
.pipe(header.apply(null, note))
.pipe(gulp.dest(destDir));
},
//压缩 CSS
mincss: function(){
var src = [
'./src/*/*.css',
'!./src/extend/**/*.css',
], noteNew = JSON.parse(JSON.stringify(note));
noteNew[1].js = '';
return gulp.src(src).pipe(minify({
compatibility: 'ie7'
})).pipe(header.apply(null, noteNew))
.pipe(gulp.dest(destDir));
},
//复制文件夹
mv: function(){
gulp.src('./src/config.js')
.pipe(gulp.dest(destDir));
gulp.src('./src/extend/**')
.pipe(gulp.dest(destDir + '/extend/'));
gulp.src('./src/style/**/*')
/ .pipe(gulp.dest(destDir + '/style/'));
return gulp.src('./src/views/**/*')
.pipe(gulp.dest(destDir + '/views/'));
}
};
//清理
gulp.task('clear', function(cb) {
return del(['./dist/*'], cb);
});
gulp.task('clearRelease', function(cb) {
return del(['./json/*', releaseDir], cb);
});
gulp.task('minjs', task.minjs);
gulp.task('mincss', task.mincss);
gulp.task('mv', task.mv);
gulp.task('src', function(){ //命令:gulp src
return gulp.src('./dev-pro/**/*')
.pipe(gulp.dest('./src'));
});
//构建核心源文件
gulp.task('default', ['clear', 'src'], function(){ //命令:gulp
for(var key in task){
task[key]();
}
});