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

发布: 2018-10-17 |  作者:  |   来源:

上一篇 下一篇

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


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环境变量 


TAG: code-push-server windows
上一篇 下一篇