项目部署
在FIS中通过配置 roadmap.path
来抹平源码路径和线上路径的差异;整个FIS设计中你不需要去关心产出线上路径是什么,而只需要关心源码路径。这句话怎么理解呢,假设你源码目录是这样的;
➜ tree
.
├── all.css
└── static
└── a.css
1 directory, 2 files
其中all.css
要import a.css
;无需关心a.css
最终会被产出到什么路径下,无需关心a.css
是否会加domain
、md5
而导致无法访问到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 讨论