1、下载源代码
Thingsboard在持续升级,目前的发布版本是2.4,开发版分别是2.5、3.0,master版本为2.6。
和以前版本相比,主要是把单体架构升级为微服务架构。
https://github.com/thingsboard/thingsboard
用git下载代码过程参考:
https://www.cnblogs.com/weschen/p/11465103.html
注意,本文下载为master版本(2.6)。
直接编译源码,在编译JsExecutor Microservice时出现以下问题:
报ESOCKETTIMEDOUT错,在安装NPM时,下载超时。
2、安装Nodejs(此步骤可以跳过)
为解决以上问题,删除原有手工配置的NODE_PATH环境变量,下载安装NodeJS,具体参考:
https://www.cnblogs.com/weschen/p/11465103.html
https://thingsboard.io/docs/user-guide/contribution/how-to-contribute/
目前的版本为:
NPM:6.13.4
Node:v12.15.0
执行命令行:
#npm 环境读取环境变量包
npm install -g cross-env
#webpack打包工具
npm install -g webpack
3、出现下载文件太慢引起的打包失败问题
看来,安装NPM不一定能解决问题,主要是资源依赖的问题。
网上有人遇到同样的下载问题:
https://www.e-learn.cn/topic/3555267
https://www.jianshu.com/p/e0e6d42cb978
https://github.com/thingsboard/thingsboard/issues/2084
在C:\Users\用户名\.pkg-cache\v2.6目录下,确实有名为:
fetched-v10.15.3-linux-x64.downloading
的文件。可以在
https://github.com/zeit/pkg-fetch/releases 下载
uploaded-v2.6-node-v10.15.3-linux-x64 和 uploaded-v2.6-node-v10.15.3-win-x64
拷贝到C:\Users\用户名\.pkg-cache\v2.6 目录,改名为
fetched-v10.15.3-linux-x64 和 fetched-v10.15.3-win-x64
重新编译,如有目录无法删除的问题,可以用
taskkill /f /im java.exe
关闭在运行的打包程序。
这样,不用等待下载,编译速度很快,但是出现ELIFECYCLE错误
可见,还是NPM打包引起的问题,参考
https://www.cnblogs.com/wwjj4811/p/10283094.html
在msa\js-executor目录下,删除node_modules目录,和package-lock.json文件
执行
npm cache clear --force
npm install
此时,在C:\Users\用户名\.pkg-cache\v2.6 目录下,下载了
fetched-v10.17.0-linux-x64
fetched-v10.17.0-win-x64
看来应该是NPM版本问题?
这样,JsExecutor微服务终于编译成功了。
4、其他微服务的NPM打包问题
同样,在编译Web UI微服务时,也出现类似问题。
同样处理,在Web-UI目录下执行
npm cache clear --force
npm install
全部编译通过,下一步可以研究ThingsBoard微服务了。