解读
fis.match(selector,props)
-
selector
:FIS3 把匹配文件路径的路径作为selector,匹配到的文件会分配给它设置的props
。关于 selector 语法,请参看 Glob 说明 -
props
:编译规则属性,包括文件属性和插件属性,更多属性
deploy
-
解释:设置项目发布方式
-
值类型:
Array
|fis.plugin
|function
-
默认值:
fis.plugin(‘local-deliver‘)
-
说明:编译打包后,新增发布阶段,这个阶段主要决定了资源的发布方式,而这些方式都是以插件的方式提供的。比如你想一键部署到远端或者是把文件打包到 Tar/Zip 又或者是直接进行 Git 提交,都可以通过设置此属性,调用相应的插件就能搞定了。
-
用法:
假设项目开发完后,想部署到其他机器上,我们选择 http 提交数据的方式部署
fis.match(‘**‘, { deploy: fis.plugin(‘http-push‘, { receiver: ‘http://target-host/receiver.php‘, // 接收端 to: ‘/home/work/www‘ // 将部署到服务器的这个目录下 }) })
fis.media()
fis.media()
接口提供多种状态功能,比如有些配置是仅供开发环境下使用,有些则是仅供生产环境使用的。
fis.match(‘*‘, { useHash: false }); fis.media(‘prod‘).match(‘*.js‘, { optimizer: fis.plugin(‘uglify-js‘) }); fis3 release <media>
-
<media>
配置的 media 值
命令行执行:fis3 release prod
编译时使用 prod 指定的编译配置,即对 js 进行压缩。
如上,fis.media() 可以使配置文件变为多份(多个状态,一个状态一份配置)。
fis.media(‘rd‘).match(‘*‘, { deploy: fis.plugin(‘http-push‘, { receiver: ‘http://remote-rd-host/receiver.php‘ }) }); fis.media(‘qa‘).match(‘*‘, { deploy: fis.plugin(‘http-push‘, { receiver: ‘http://remote-qa-host/receiver.php‘ }) });
-
fis3 release rd
push 到 RD 的远端机器上 -
fis3 release qa
push 到 QA 的远端机器上
media
dev
已经被占用,默认情况下不加<media>
参数时默认为dev