2017-05-30 122 views
0

相當新的角度發展,所以請忍受我。 我碰巧使用使用一口角度做來縮小所有組件的JS在gulpfile下面來開發組件AEM 6.2:Minifying Angular不更新模板?

var uglify = require('gulp-uglify'); 
var pump = require('pump'); 
var gp_concat = require('gulp-concat'); 
var gp_rename = require('gulp-rename'); 
var gp_ignore = require('gulp-ignore'); 
var gp_htmlmin = require('gulp-htmlmin'); 
var templates = require('gulp-angular-templatecache'); 

var paths = require('../paths'); 
var utils = require('../utils'); 

var base = [ 
    paths.APP, 
    paths.ETC, 
    paths.DESIGN 
]; 

gulp.task('minify', function() { 
    var filesToInclude = ['**/app/components/**/*.js ']; 
    var excludeCondition = '**/*.spec*.js' 
    return gulp.src(filesToInclude) 
    .pipe(gp_ignore.exclude(excludeCondition)) 
    .pipe(gp_concat('all.concat.js')) 
    .pipe(gulp.dest('dist')) 
    .pipe(gp_rename('all.min.js')) 
    .pipe(plugins.ngAnnotate()) 
    .pipe(uglify()) 
    .pipe(gulp.dest('dist')); 
}); 

現在JS的微小完美的作品。但是,在模板(即每個組件的html)中,對控制器的引用不使用縮小的名稱。例如,而不是縮小的控制器的名字,它仍然使用原來的控制器名稱:

<section data-ng-controller="MyController as mc" ng-cloak> 
    <div class="mc-name"> 
    Hi, {{mc.userName}} 
    </div> 
</section> 

再說一遍,我是相當新的角度,所以我不知道如何模板和控制器這樣的鏈接最小化知道更新所有參考的方式。有人能幫我解釋一下我失蹤的東西嗎?謝謝!

+2

縮小不會改變控制器的名稱。控制器,模塊,服務和工廠名稱都是字符串文字,並且自然不會被minifyer更改 –

+0

@JoelCDoyle謝謝!這絕對清除了一切! – daitienshi

回答

1

在AEM6.1和內存中,我有一個類似的問題,它與minification IE的競爭版本有關:YUI Compressor。我正在延伸我的記憶,但我相信YUI壓縮機的6.1版本嚴重過時。我記得它在6.2中更新,但我仍然懷疑它可能會與角度縮小比較,可能是最新的。從本質上講,你試圖縮小兩次,可能再次使用不同版本的YUI Compressor。

現在,您可以關閉AEM中的縮小,並且簡單地使用角度縮小(理論上),但我不會建議這麼做,因爲這意味着任何AEM clientLib都不會縮小。

或者,不要用角度編譯器縮小,允許AEM爲您做縮小。我認爲這是我當時所做的。雖然我記得通過adobe daycare在某些時候獲得了相同的修補程序,但我無法確定,現在是幾年前。

1

請儘量使用VM和噴油器的語法使用控制器

`rmToolkit.controller('QuestionsCtrl', QuestionsCtrl); 
QuestionsCtrl.$inject = ['$scope', '$rootScope', '$stateParams', '$state','Data_Service']; 
function QuestionsCtrl($scope, $rootScope,) { 
    var vm = this; 
}` 

希望,這句法將解決微小問題