Ember-cli:将版本注入应用程序

时间:2014-07-23 18:22:46

标签: node.js ember-cli

我喜欢在使用ember-cli和西兰花构建的Ember应用程序的页脚中显示我的项目版本(来自package.json),git commit hash和working-copy状态。

我可以通过添加到我的config / environment.js来轻松获取版本前缀:

ENV.APP.version = require('../package.json').version

我以前使用grunt-git-describe来获取修订哈希和脏/清除状态。我怎样才能在ember-cli中做类似的事情?

简单地炮轰git describe是有问题的,因为child_process没有执行shell命令的同步方法。

有一种方法可以从某个地方返回一个promise并阻止config / environment.js解析,直到我的异步git describe完成?

npm软件包exec-sync和execSync在Windows上似乎不适合我。

2 个答案:

答案 0 :(得分:3)

ember-git-version是一个ember-cli插件,提供当前的修订版哈希。

安装节点包后,config / environment哈希将具有属性currentRevision。有关如何从您的应用访问它的信息,请参阅initializers/print-git-info.js

答案 1 :(得分:1)

您可以使用exec-sync包,然后将类似内容添加到Brocfile.js中:

var execSync = require('exec-sync'),
    gitVersion = execSync('git describe');

fs.writeFileSync('app/version.js', 'App.version = "' + gitVersion + '";';

然后您需要将其导入某处。