繁体   English   中英

节点全局npm软件包,保持最新状态

[英]Node global npm package, keeping up to date

我已经通过npm发布了一个全局节点包,以为我公司的项目生成样板模板。

我想将当前版本与最新发布的版本进行比较,如果不是最新版本,则退出该过程。

  1. 建议您检查哪些节点库以获取最新版本。

  2. 如果检测到新版本,是否可以自动更新全局软件包。

请记住,这是我公司的内部工具,因此使用最新的模板创建项目非常重要,我希望它们能够尽可能自动或轻松地进行更新

个人建议

除了强迫用户升级外,另一种选择是将模板(以zip格式)发布在远程静态服务器(例如S3)上。 在这种情况下,您通常可以将zip更新为最新的模板,而无需升级模板生成器。

generate-template angularjs-template:latest
generate-template angularjs-template:4.3

回答你的问题

  1. 建议您检查哪些节点库以获取最新版本。

我不确定是否有图书馆。 但是,您可以非常轻松地构建一个。

  1. 创建一个包含程序包信息(例如最新的稳定版本,弃用消息等)的JSON文件。
  2. 将JSON文件上传到远程静态服务器。
  3. 每当用户运行您的程序时,请下载JSON文件并检查当前的package.json
  4. 如果用户应升级,则显示弃用警告
  5. 如果用户必须升级,则为process.exit()应用程序。
  1. 如果检测到新版本,是否可以自动更新全局软件包。

我认为最好将控制权留给用户,因为可能有些原因导致他不喜欢升级。 例如,如果用户有10个月前开始的一堆项目,则他可能想对较新的项目使用相同的模板。 但是,如果您真的想使其自动化,则可以使用以下代码(未经测试)

const { execSync } = require('child_process');
const pkg = require('./package.json')
execSync(`npm update -g ${pkg.name}`)

process.exit()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM