2015-05-24 66 views
3

我創建了一個Angular應用程序,我想在屏幕上顯示我的應用程序的當前版本號。目前我已經實現它作爲一個常數:AngularJs:顯示來自git或bower的版本號

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

但是這將需要我更新每個新版本的常量。 我使用鮑爾和混帳,我想知道是否有任何方式從這些包之一動態地獲取版本號作爲變量?

+0

你硬編碼您的版本,這可能並不是最好的解決方案。版本不屬於代碼,它是和屬性。 –

+0

在Git中有標籤,通常用於標記某些發佈版本。但是必須手動創建標籤。 –

+0

您是否有後端,例如的NodeJS?然後,如果我理解你的話,可以通過後端提供版本。 – LordTribual

回答

4

解決方案是使用Gulpgulp-ng-constant插件。它將自動化您的發佈工作流程,在Angular常量服務中編寫您的應用程序版本。

  • 安裝咕嘟咕嘟
  • 安裝一飲而盡-NG-不斷
  • 撰寫您一飲而盡任務像下面並運行它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-恆前服務。

見下面的教程:Versioning Your Angular Application with Gulp

+0

Ty for this answer。這是一個美麗而優雅的解決方案! – stevenvanc

+0

無法從packagaje.json中獲取? –

+0

@SebastiánRojas,是的。更改以上代碼中的以下內容'var bower = require('./bower.json');' – doroshko