我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

fis3 release命令,是贯穿fis3使用周期的一个命令。一直在执行这个fis3 release命令,那么它有如下几种变化,你知道么?苏南大叔,在本文中,将要进行一下总结:fis3 release命令的输出位置,到底在什么地方?

苏南大叔:fis3进阶之release命令如何控制www输出位置 - fis3-logo
fis3进阶之release命令如何控制www输出位置(图2-1)

默认情况

默认情况下,如果没有配置相关的fis-config.js的话,这个不带任何参数的fis3 release命令,是发布到内置serverroot位置的。

这个root位置可以由通过命令fis3 server open来获知。
win系统下,这个位置是:%LOCALAPPDATA%/.fis3-tmp/www/

具体描述见这里:https://newsn.net/say/fis3-server.html

苏南大叔:fis3进阶之release命令如何控制www输出位置 - www_root
fis3进阶之release命令如何控制www输出位置(图2-2)

使用-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.jslocal-deliver插件的to参数的位置的。

fis.match('*', {
  deploy: fis.plugin('local-deliver', {
    to: '/opt/nginx/wwwroot/htdocs/'
  })
})

如果在fis-config.js中,配置了media+local-deliver的组合,那么fis3 release <media>命令的输出位置,就是由对应下的local-deliverto参数来控制的了。

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-pushto参数进行控制的。不过,这个因为发布到的远程主机上,所以,最终的位置,远程主机上的伺服脚本(例如receiver.php)是能控制的。只是它是否完全遵从http-pushto命令指示罢了。

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-pushto参数,和远程的伺服脚本共同控制的了。

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的输出位置,情况变化很多。大家自行理解消化吧。苏南大叔丢了一个链接给你,你自己体会!

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   百度    fis3