Личное предложение
Вместо того, чтобы заставлять пользователя обновляться, другой вариант - публиковать ваши шаблоны (в виде zip) на удаленном статическом сервере (например, S3).В таком случае вы часто можете обновить zip-файл до последнего шаблона без обновления генератора шаблонов.
generate-template angularjs-template:latest
generate-template angularjs-template:4.3
Ответы на ваши вопросы
- Какие библиотеки узлов вы бы порекомендовали проверить на наличие последней версии.
Я не уверен, есть ли для этого библиотека.Однако его можно создать очень легко.
- Создайте файл JSON, содержащий информацию о пакете (например, последнюю стабильную версию, сообщение об устаревании и т. Д.).
- Загрузите файл JSONна удаленный статический сервер.
- Всякий раз, когда пользователь запускает вашу программу, загрузите файл JSON и проверьте текущий
package.json
. - Покажите предупреждение об устаревании , еслипользователь должен обновить.
process.exit()
приложение, если пользователь должен обновить.
Есть ли способ автоматического обновления глобального пакета, если обнаружена новая версия.
Я думаю, что лучше оставить управление пользователю, потому что могут быть некоторыепричины, почему он не предпочитает обновление.Например, если у пользователя есть несколько проектов, запущенных 10 месяцев назад, он может захотеть использовать тот же шаблон для новых проектов.Но если вы действительно хотите автоматизировать его, вы можете использовать следующий код (не тестировался) .
const { execSync } = require('child_process');
const pkg = require('./package.json')
execSync(`npm update -g ${pkg.name}`)
process.exit()