如何制作自我更新的节点包?

时间:2016-02-18 15:13:31

标签: node.js npm auto-update

我们有一个node_module bookiza,它本质上是一个命令行工具,人们用--global标志安装,然后用它来在线创建和发布书籍。我们正在关注它(主要是),但我预计它将来会严格完成。

有没有办法让这个模块成为一个自我更新的模块?这样我们所有的客户(编写者)都会一直使用相同版本的bookiza(除非他们禁用自动更新)。基本上,每15天运行一次npm update [-g] bookiza,或者在发布新版本时运行。{/ p>

我该如何实施?

2 个答案:

答案 0 :(得分:2)

对于那些正在寻找相同事物的人,我创建了一个模块,用于从git存储库中自动更新node.js应用程序。它将本地package.json与您的仓库中的本地package.json进行比较,然后自动克隆仓库并安装依赖项。

自动Git更新-https://github.com/chegele/AutoGitUpdate

import AutoGitUpdate from 'auto-git-update';

const config = {
    repository: 'https://github.com/chegele/BackupPurger'
    tempLocation: 'C:/Users/scheg/Desktop/tmp/',
    ignoreFiles: ['util/config.js'],
    executeOnComplete: 'C:\\Users\\scheg\\Desktop\\worksapce\\AutoGitUpdate\\startTest.bat',
    exitOnComplete: true
}

const updater = new AutoGitUpdate(config);

updater.autoUpdate();

答案 1 :(得分:1)

您的用户可以通过多种方式安装命令行工具..因此无法保证npm install -g能够正常工作,尤其是在他们的环境中。

我认为这里最好的办法是在开始时进行某种“最新版本”检查。如果有新版本,请警告用户,并提供自动运行带[Y / n]的更新命令。

这就是凉亭和其他一些套餐所做的事。