用户配置(Configuring Fekit)

fekit.config样板

{
    "compiler" : false|modular|component,

    "name" : "hello1",
    "version" : "0.0.1",
    "author" : "rinh",
    "email" : "rinh@abc.com",
    "description" : "",
    "main" : "home",

    "dependencies" : {
        "dialog" : "1.2.*"    
    },

    "alias" : {
        "core" : "./src/core"
    },

    "export" : [
        "./scripts/page-a.js",   
        {
            "path" : "./scripts/page-b.js",
            "parents" : [ "./scripts/page-a.js" ]
        },
        {
            "path" : "./scripts/page-c.js" ,
            "no_version" : true
        }
    ],

    "scripts" : {
        "premin" : "./build/premin.js",
        "postmin" : "./build/premin.js",
        "prepack" : "./build/premin.js",
        "postpack" : "./build/premin.js",
        "prepublish" : "./build/prepublish.js"
    }
}

fekit.config详解

配置项说明
编译方案配置项
compilerfalse|"modular"|"component" 配置项含义
compiler,编译方案

取值
false: 使用普通模式编译。会将 import 和 require 引用的文件 inline 进文件中;
"modular": 使用模块化模式编译。会将 import 和 require 以标准AMD方案的变化(Asynchronous Module Definition)进行处理, 模块内的内容将以exports或return对外提供接口;
"component“: 使用组件模式编译。

默认值
false
组件编译方式配置项
name如:"hello1"组件名称标识符,string类型
version如:"0.0.1"组件版本号,string类型,遵循semver
author如:"rinh"组件作者名,string类型
email如:"rinh@abc.com"组件作者邮箱,string类型
description如:""组件描述,string类型
main如:"home"指定某个文件作为包入口, 该路径以src目录为根。默认使用src/index
依赖组件配置项
dependencies 如:{ "dialog" : "1.2.*" } 依赖的组件
别名配置项
alias 如:{ "core" : "./src/core" } 配置项含义
别名的配置, 该库作为编译时 @import url 和 require 使用

取值
路径相对于当前fekit.config文件
文件导出配置项
export 如:"./scripts/page-a.js" 配置项含义
将要导出至 prddev 目录的文件列表。其中所有路径, 均相对于 src 目录

取值
第一种配置方式, 直接写出要导出的文件相对路径
如:
{
   "path" : "./scripts/page-b.js" ,
   "parents" : [ "./scripts/page-a.js" ]
}
配置项含义
将要导出至 prddev 目录的文件列表。其中所有路径, 均相对于 src 目录

取值
第二种配置方式, 当要导出的文件, 在实际使用时有上级依赖, 则可以将上级依赖的文件加入parents节点
如:
{
    "path" : "./scripts/page-c.js" ,
    "no_version" : true
}
配置项含义
将要导出至 prddev 目录的文件列表。其中所有路径, 均相对于 src 目录

取值
允许某个文件不含版本号信息
如:
{
    "path" : "./scripts/page-a.css" ,
    "domain_mapping" :
         "domain.com => img1.domain.com
          img2.domain.com
          img3.domain.com
          img4.domain.com"
}
配置项含义
将要导出至 prddev 目录的文件列表。其中所有路径, 均相对于 src 目录

取值
允许 css 使用 domain_mapping 功能
自动化hook脚本配置项
scripts如:
{
    "premin" : "./build/premin.js" ,
    "postmin" : "./build/premin.js" ,
    "prepack" : "./build/premin.js" ,
    "postpack" : "./build/premin.js" ,
    "prepublish" : "./build/prepublish.js"
}
配置项含义
自动化hook脚本。

取值
每一项均为 hook , 在 min 开始或结束后 与 pack 开始时或结束后会调用执行 指定位置的任意javascript文件。你可以使用全局变量 EXPORT_LIST,其结构为:
[
   {
      url : '源文件文件的物理路径' ,
      path : '源文件相对于根目录的路径' ,
      ver : '编译后的version版本号' ,
      minpath : '编译后的相对于根目录的路径, 包含版本号'
   }
]
ver与minpath只在postmin时才会有。
自定义编译参数配置项
min如:
{
    "config" : {
        "uglifycss" : {},
        "uglifyjs" : {
            "ast_mangle" : {},
            "ast_squeeze" : {},
            "gen_code" : {}
        }
    }
}
配置项含义
自定义编译参数

取值
"uglifycss" : 参见:https://github.com/fmarcia/UglifyCSS
"uglifyjs" : 参见:https://github.com/mishoo/UglifyJS
发布其它文件配置项
refs如:
{
    "cp" : [ "ver" ],
    "sh" : "./auto.js"
}
配置项含义
发布其它文件

取值
"cp" : copy 命令 , 将 ver 目录复制到 refs 中
"sh" : 自定义脚本, 当前目录为项目目录, 可以制定任意内容,全局对象可以使用path, file, cwd, refs_path