项目部署

在FIS中通过配置 roadmap.path 来抹平源码路径和线上路径的差异;整个FIS设计中你不需要去关心产出线上路径是什么,而只需要关心源码路径。这句话怎么理解呢,假设你源码目录是这样的;

➜  tree
.
├── all.css
└── static
    └── a.css

1 directory, 2 files

其中all.css要import a.css;无需关心a.css最终会被产出到什么路径下,无需关心a.css是否会加domainmd5而导致无法访问到a.css。只需要关注源码路径;

all.css

@import url('./static/a.css');

可能编译以后得到的结果是这样的

all_[md5].css

@import url('http://static.baidu.com/static/release/a_2f4ef26.css');

也有可能是其他形式。

那么这一切是如何做到的?

roadmap.path可以配置任意资源的产出路径。

就比如上面这个例子;只需要配置

fis-conf.js

fis.config.set("roadmap.domain", "http://static.baidu.com"); //配置domain
fis.config.set("roadmap.path", [{
    reg: /^\/static\/a\.css$/,
    release: '/static/release/a.css' //配置产出路径
}]);

release使用reg的分组,使用$1, $2, $3 ..., $&等

有这样一个配置文件fis-conf.js

就可以轻松修改资源的线上部署路径,也能搞定上面例子中看到的情况。

执行命令 fis release -Dmd output,可在output目录下看到产出结果。

➜  tree
.
├── all.css
├── fis-conf.js
├── output
│   ├── all_4e47d46.css
│   ├── map.json #万能的map.json
│   └── static
│       └── release
│           └── a_2f4ef26.css
└── static
    └── a.css

4 directories, 6 files

有任何问题,请在 https://github.com/fex-team/fis/issues 讨论