我已经通过npm发布了一个全局节点程序包,以为我公司的项目生成样板模板。
我想将当前版本与最新发布的版本进行比较,如果不是最新版本,则退出该过程。
建议您检查哪些节点库以获取最新版本。
如果检测到新版本,是否可以自动更新全局软件包。
请记住,这是我公司的内部工具,因此至关重要的是,他们正在使用最新模板创建项目,我希望它们能够自动或轻松地进行更新
答案 0 :(得分:1)
个人建议
代替强迫用户升级,另一种选择是将模板(以zip格式)发布到远程静态服务器(例如S3)上。在这种情况下,您通常可以将zip更新为最新的模板,而无需升级模板生成器。
generate-template angularjs-template:latest
generate-template angularjs-template:4.3
回答您的问题
- 建议您检查哪些节点库以获取最新版本。
我不确定是否有用于此的库。但是,您可以轻松构建一个。
package.json
。process.exit()
应用程序,如果用户必须升级。
- 如果检测到新版本,是否可以自动更新全局软件包。
我认为最好将控制权留给用户,因为可能有些原因导致他不喜欢升级。例如,如果用户有10个月前开始的一堆项目,则他可能想对较新的项目使用相同的模板。 但是,如果您真的想使其自动化,则可以使用以下代码(未测试)。
const { execSync } = require('child_process');
const pkg = require('./package.json')
execSync(`npm update -g ${pkg.name}`)
process.exit()