gpt4 book ai didi

git - 如何将我的 Meteor 应用程序版本号放在 UI 中?

转载 作者:IT王子 更新时间:2023-10-29 00:59:14 26 4
gpt4 key购买 nike

我有一个 meteor 应用程序,它为不同的客户提供不同的分支。这是因为客户想要特别的东西。当然对吧?

我希望能够将该客户端的应用程序部署版本的 git 分支和标签/哈希放置在 UI 中的某处。

问题是如何?在 Meteor 中有没有办法获取这些信息并简单地使用它?

谢谢!

最佳答案

在我的生产应用程序中,我以这种方式解决了这个问题:

文件

App/.git/hooks/post.commit

App/MeteorApp/hooks/post-commit-version

应用结构:

App
.git
hooks
post-commit (file)
MeteorApp
client
server
both
private
version.json
hooks
post-commit-version (file)

每当开发人员提交代码 .git/hooks/post-commit 时,它会执行存储在 App/MeteorApp/hooks/post-commit- 中的 nodejs 脚本版本

脚本 post-commit-versionApp/MeteorApp/private 目录中生成 version.json 格式:

{
"timestamp": "29-08-2014 23:16",
"branch": "master",
"commit": "3332f6dcbde57105a8dc353e5e878651cab89856"
}

存储在 private 中的所有内容都可供生产服务器访问。

如何在应用中显示version.json

App/MeteorApp/both/collections/Version.js:

Version = new Meteor.Collection('version');

App/MeteorApp/server/startup.js

Meteor.startup(function(){
if (Version.find().count() > 0){
Version.remove({});
}
Version.insert(JSON.parse(Assets.getText("version.json")));
})

应用程序部署后,它将触发 startup 回调,版本将插入集合 Version

App/MeteorApp/server/publish/version.js:

Meteor.publish('version', function () {
return Version.find();
});

App/MeteorApp/client/startup.js:

Meteor.startup(function(){
Meteor.subscribe("version");
})

然后在模板的某处简单地创建助手:

Template.template_name.helpers({
version:function(){
return Version.findOne();
}
})

在 template_name 中,您使用 {{version.commit}} {{version.branch}} {{version.timestamp}} 显示版本>.

旁注 1

脚本 post-commit-version 没有 js 扩展名,因为我不希望 meteor 每次都将它包含在 bundle 中或在开发中重新加载应用程序改变这个文件。但是,当该文件存储在 .dir 中时,可以使用 post-commit-version.js(如 App/MeteorApp/.hooks ) 因为以 . 作为第一个字符的目录不会被 meteor 处理。

旁注 2

另一种可能性是在服务器端加载 version.json Meteor.startup,解析 json 并附加到全局变量,如 App.version .稍后将其与 Meteor.method 一起使用:

Meteor.methods({
getVersion:function(){
return App.version;
}
})

在客户端你只需调用方法:

Meteor.call("getVersion", function(error,version){
if(error) {
throw new Error("Cannot get version");
return;
}

Session.set("version",version)
})

一些模板的助手可以使用它:

Template.template_name.helpers({
version:function(){
return Session.get("version");
}
})

关于git - 如何将我的 Meteor 应用程序版本号放在 UI 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25796533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com