首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为基于Node.js的CLI的单个版本运行一次代码

为基于Node.js的CLI的单个版本运行一次代码
EN

Stack Overflow用户
提问于 2018-05-30 20:39:20
回答 1查看 316关注 0票数 1

我用Node.js编写了一个CLI,您可以使用npm进行全局安装。现在,我想在用户第一次运行我的CLI时运行一段特定的代码。但应该只运行一次。

我的问题是:如何才能检测到CLI是第一次运行?

当然,我可以将文件写入用户的主目录,如果存在,则跳过代码执行。这会很简单。

但现在情况变得更加复杂:当用户将CLI更新为新版本时,我希望重新运行此检查。因此,我可以再次将文件写入用户的主目录,并将版本存储在其中,为此我运行了“一次性”-code块。

但这再次意味着,每当用户运行CLI时,它都必须打开文件,解析文件,查找版本,等等。我担心这会对创业绩效产生负面影响。

有更好的办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-05-30 21:46:52

我有个愚蠢的想法,把它当作一个黑客元编程的学术例子。创建一个名为script.js的脚本

代码语言:javascript
运行
复制
var fs = require('fs');

if(!process.env.firstRun){
  var content = fs.readFileSync("script.js", "utf8");
  fs.writeFileSync('script.js', 'process.env.firstRun=true;\r\n' + content, 'utf8');
  console.log('first run');
} else {
  console.log('next run');
}

如果没有设置脚本,脚本只需在开始时添加一个额外的标志声明来覆盖自己。否则,它会走上另一条道路:

代码语言:javascript
运行
复制
λ node .\script.js
first run

λ node .\script.js
next run

λ node .\script.js
next run

上面的这些只是为了好玩。对于生产代码,您应该按照您的建议选择一个配置文件。读取单个小文件并不是什么大问题,根据this method,在我的设置中需要<0.5ms (I5处理器,SSD驱动器),所以这绝对是一种方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50613022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档