code-push-server部署windows系统踩坑记

来源:互联网 发布:淘宝同一个ip 2个店铺 编辑:程序博客网 时间:2024/06/04 00:51
code-push-server在windows上无法下载更新包的问题分析。
先上结论:windows下默认有环境变量PUBLIC=C:\User\Public 把这个环境变量删除就可以正常下载了
分析过程:
http://ip:port/download/FjUWVSlV_WmwnDwRwxUALPeschkL
这个文件无法下载返回404错误,检查更新包的目录,发现这个文件是存在的。而 http://ip:port/updateCheck 不提示404说明push-server已经启动成功,而download uri监听出现了问题,继续搜索源码中监听/download的代码,发现app.js中有一行
 app.use(_.get(config, 'local.public', '/download’), express.static(localStorageDir));
这个地方就是监听/download端口的地方
app.use的第一个参数代表监听的uri,它的值应该是/download,第二个参数代表路由模块。这是一个监听本地静态文件的模块
把_.get(config, 'local.public', '/download’) 的内容打印出来,它的值竟然是C:\User\Public
而config对象的生成是放在/config/config.js文件中的。
...
local:{
...
45:   public: process.env.PUBLIC || '/download'
},

结论:在windows下默认存在PUBLIC环境变量,而osx上默认不存在PUBLIC环境变量,
因此在osx上可以正常监听/download,而在WINDOWS下不能正常监听download
解决方案是用set PUBLIC= 命令删除PUBLIC环境变量 
原创粉丝点击