scv
Version:
SCV前端工程自动化工具,工作流
112 lines • 4.28 kB
JavaScript
/**
* 工程配置
* @name 应用名称
* @ename 应用英文名称
* @descriptyion 应用描述
* @version 应用版本,每次release生成的版本名称也是依据此处,请使用三段
* ******监控目录部分
* @workSpace 工程源码目录的相对路径,用户在这里开发,文件中引用其他目录中的资源文件时请使用`[相对路径]`,
* @tempSpace scv缓存目录的相对路径
* @releaseSpace 发布目录的相对路径,工程发布后会在这里生成一个版本用于上线
* ******监控目录配置部分
* @watchs [watchItem,watchItem,...]
* 这是工程对所有资源文件的操作配置,数组中的每个元素代表一个监控对象配置对象(目录),每个watchItem监控对象最终都会进行拷贝工作到发布目录,具体结构如下:
* {
* // 监控对象的类型,目前系统支持:js|css|image|html|other几种内置默认类型.出other外每种类型都有自己的actions,other没有对应的action,只会平移复制.
* type:'js',
* // 监控目录数组,相对于工作目录(workspace)
* paths:['assets/js'],
* // 监控目录中需要监控文件的后缀名数组
* exts:['js'],
* // 对监控目录进行的动作,执行顺序为: parser->concat->prefix->compress ,如果有一个出错则中断文件操作
* actions:{
*
* //>是否进行语法检查,默认false,该动作支持的类型有:js|css
* //[js] 使用的是jshint插件, 当为true时使用相关工具的默认配置,{outSourceMap:false,compress:{unused:false}}
* //[css] 使用的css插件的parse方法(参数slient程序中恒为true)
* hint:true|false|{options},
*
* //>是否压缩,默认false,该动作支持的类型有:js|css|image|html .
* //[js] 使用的是uglifyjs,当为true时 使用的是默认的配置,个性化配置可参考uglifyjs(参数fromString程序中恒为true)
* //[css] 使用的是clean-css插件,
* //[html] 使用html-minifier插件,默认{collapseWhitespace: true,minifyJS:true,minifyCSS:true,relateurl:true,removeComments: true}
* //[image] 使用imagemin-optipng处理png,imagemin-jpegtran处理jpg,imagemin-gifsicle处理gif,imagemin-svgo处理svg. 配置则为这三个插件的配置文件组合.
* compress:true|false|{options},
*
* //>自动为代码增加浏览器私有前缀 仅支持:css
* //[css] 使用autoprefixer插件, 具体参数参考autoprefixer插件. 数据来源参考can i use
* prefix:false|true|[options],
*
* //>合并文件夹操作,该动作支持的类型有:js|css|html|other.
* //值为合并后的文件路径名(,相对于工作目录workspace),系统将在需要合并的目录同级生成生成目标文件(按名称排序),如不需合并则设为false
* concat:'assets/js/all.js',
* },
* //是否按照以上规则递归处理子目录,默认false
* depth:false,
* //发布时系统将自动将资源文件根据设置的前缀信息更换为线上路径,这需要用户在书写源码的时候必须使用相对路径.如果不需要则设置为false(默认)
* domain:[false]
* }
*
* ******测试部分暂未实现,预留
* @main 入口html页面,测试需要知道入口。
* @port 工程测试服务端口
*/
module.exports = {
name:'示例工程',
ename:'scv-demo',
description:'scv前端工程自动化demo',
version:'1.0.0',
// *测试参数
// main:'html/index.html',
// port:8001,
// *目录配置
workSpace:'workspace',
tmpSpace:'tmp',
releaseSpace:'release',
// *资源文件配置
watchs:[{
type:'css',
paths:['assets/css'],
exts:['css'],
actions:{
hint:true,
prefix:true,
compress:true,
concat:false
},
depth:true,
domain:''
},{
type:'js',
paths:['assets/js'],
exts:['js'],
actions:{
// concat:false,
concat:'assets/js/all.js',
compress:true,
hint:true,
},
depth:true,
domain:''
},{
type:'html',
paths:['html'],
exts:['html','tpl'],
actions:{
compress:true,
concat:'html/all.html'
},
depth:true,
domain:''
},{
type:'other',
paths:['assets/image'],
exts:['*'],
actions:{
compress:true
},
depth:true,
domain:''
}
]
};