Open calledT opened 9 years ago
@calledT
fis最开始设计工具的时候,发现不应该让插件自己决定怎么输出,否则这个插件输出到output,那个插件输出到dist,这个插件有A规范,那个插件有B规范,就不能得到一致的架构设计了。
所以,fis规定:
插件只处理内容,fis负责确定发布路径。
于是,我们设计了一种配置,叫 roadmap.path
,负责给每个文件分配属性,而这些属性决定了fis对每个文件的处理方式。比如一个文件的 release
,那么这个文件就不会被发布,如果如果文件的 release
属性是 '/css/common.css' 那它就会被发布到这个目录下。所以,你的需求在fis中的配置为:
fis.config.set('roadmap.path', [
{
reg: /^\/scss\/(.*\.scss)$/,
release: 'css/$1'
}
]);
fis中,给文件分配属性是通过roadmap.path中的 reg 匹配来实现的,reg命中的文件路径,就把reg之外的其他属性都赋值给文件对象。
所以,上面这个配置就是命中了scss下的所有.scss后缀的文件,并且把匹配到的文件路径中scss后面的部分取出来用 $1
表示(这是正则分组,如果不了解,可以看一下js的正则表达式介绍),用这个值来设置文件的release属性
这样,fis在发布项目的时候,就知道该怎么发布文件了。接下来,如果你希望整个项目发布到d盘的output目录下作为最终发布路径,那么就执行命令:
fis release -d d:\output
然后,你的这个scss/common.scss
由于配置了release属性是“css/common.css”,那么在这条命令执行后,它的实际产出路径就是 d:\output\css\common.css
我想把目录结构为
的内容输出为
想下面这样设置
输出结果变成了
正确的配置应该是怎样的呢?