【问题标题】:AngularJs: Show version number from either git or bowerAngularJs:显示来自 git 或 bower 的版本号
【发布时间】:2015-05-24 09:26:02
【问题描述】:

我创建了一个 Angular 应用程序,我想在屏幕上显示我的应用程序的当前版本号。目前我已将其实现为常量:

application
    .constant('constants', {
        VERSION: '1.1.2'
    });

但这需要我在每个新版本上更新常量。 我使用 bower 和 git,我想知道是否有任何方法可以动态地从其中一个包中获取版本号作为变量?

【问题讨论】:

  • 您正在硬编码您的版本,这可能不是最好的解决方案。版本不属于代码,属于和属性。
  • Git 中有标签,通常用于标记某些发布版本。但是必须手动创建标签。
  • 你有后端吗,例如节点JS?然后可以通过后端提供版本,如果我理解你的话。
  • 我觉得你可以用 grunt 做点什么
  • 我实际上使用了一个 php REST 后端。还有带有发布标签的 git...

标签: angularjs git bower


【解决方案1】:

解决方案是使用Gulpgulp-ng-constant 插件。它将自动化您的发布工作流程,在 Angular 常量服务中编写您的应用程序版本。

  • 安装 Gulp
  • 安装 gulp-ng-constant
  • 像下面这样编写你的 gulp 任务并运行它gulp constants:
var gulp = require('gulp');
var ngConstant = require('gulp-ng-constant');

gulp.task('constants', function() {
  // get version from bower file
  var bower = require('./bower.json');
  // set version to ng contants
  var constants = { version: bower.version };

  return ngConstant({
      constants: constants,
      stream: true,
      name: 'app.constants'
    })
    // save ngConstant.js to src/app/
    .pipe(gulp.dest('./src/app'));
});

它将为您生成 angular.module,如下所示:

angular.module("app.constants", [])
  .constant("version", "0.0.1")

您需要的最后一步是在您的主应用程序中注入您生成的常量服务:

var app = angular.module('app', ['app.constants']);

您可能也有兴趣使用gulp-bump 任务自动增加您的应用版本,然后再将其添加到 ng-constant 服务。

参见以下教程:Versioning Your Angular Application with Gulp

【讨论】:

  • 回答这个问题。这是一个美丽而优雅的解决方案!
  • 无法从 packagaje.json 中获取?
  • @SebastiánRojas,是的。在上面的代码中更改以下内容。 var bower = require('./bower.json');
猜你喜欢
  • 1970-01-01
  • 2013-10-01
  • 2018-01-14
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
相关资源
最近更新 更多