fis3进阶之release命令如何控制www输出位置
发布于 作者:苏南大叔 来源:程序如此灵动~
fis3 release命令,是贯穿fis3使用周期的一个命令。一直在执行这个fis3 release命令,那么它有如下几种变化,你知道么?苏南大叔,在本文中,将要进行一下总结:fis3 release命令的输出位置,到底在什么地方?

默认情况
默认情况下,如果没有配置相关的fis-config.js的话,这个不带任何参数的fis3 release命令,是发布到内置server的root位置的。
这个root位置可以由通过命令fis3 server open来获知。win系统下,这个位置是:%LOCALAPPDATA%/.fis3-tmp/www/。
具体描述见这里:https://newsn.net/say/fis3-server.html

使用-d参数的情况
使用了fis3 release命令的-d参数的话,那么发布位置就是走-d参数了。-d参数可以是相对地址,也可以是绝对地址,不过都会是本机上的地址。
fis3 release -d ../dist/
fis3 release -d /www/root/具体描述见这里:https://newsn.net/say/fis3-demo.html
配置插件local-deliver情况
如果配置了local-deliver,那么不带任何参数的fis3 release命令,就是发布到fis-config.js的local-deliver插件的to参数的位置的。
fis.match('*', {
deploy: fis.plugin('local-deliver', {
to: '/opt/nginx/wwwroot/htdocs/'
})
})如果在fis-config.js中,配置了media+local-deliver的组合,那么fis3 release <media>命令的输出位置,就是由对应local-deliver的to参数来控制的了。
fis.media("nginx").match('*', {
deploy: fis.plugin('local-deliver', {
to: '/opt/nginx/wwwroot/htdocs/'
})
})具体描述见这里:https://newsn.net/say/fis3-local-deliver.html
使用了http-push插件的情况
输出位置是由http-push的to参数进行控制的。不过,这个因为发布到的远程主机上,所以,最终的位置,远程主机上的伺服脚本(例如receiver.php)是能控制的。只是它是否完全遵从http-push的to命令指示罢了。
fis.match('*', {
deploy: fis.plugin('http-push', {
receiver: 'http://remote:888/receive.php',
to: 'E:/fis3/php/www/' // 注意这个是指的是测试机器的路径,而非本地机器
})
});同样,如果在http-push插件外部组合了media的话,那么fis3 release <media>命令的输出位置,就是由对应http-push的to参数,和远程的伺服脚本共同控制的了。
fis.media('qa').match('*', {
deploy: fis.plugin('http-push', {
receiver: 'http://remote:888/receive.php',
to: 'E:/fis3/php/www/' // 注意这个是指的是测试机器的路径,而非本地机器
})
});具体描述见这里:https://newsn.net/say/fis3-http-push.html
同时指定了上述所有变量的情况
media+http-push+local-deliver+-d,那么这种情况比较复杂,不知道会不会有人这么折磨自己呢?哈哈。目前来看,即使多方位指定了输出位置,最终的输出位置也只有一个,而不会出现两个(多个)输出位置的情况。
总的原则是这样的:
- 如果在
fis-config.js里面定义了相关输出,那么-d参数失效。 - 如果在
fis-config.js定义了多种输出,那么后面的定义会覆盖前面的定义。 - 同时定义了
http-push+local-deliver的话,那么后面的生效。 - 定义了
fis3 release media的话,fis-config.js中,该media对应的最后面的配置生效。
关于media的描述,见这里:https://newsn.net/say/fis3-media.html
总结
fis3-release控制www的输出位置,情况变化很多。大家自行理解消化吧。苏南大叔丢了一个链接给你,你自己体会!