zoukankan      html  css  js  c++  java
  • Minifying Angular应用时产生的问题

    一、产生的问题

    如果你正在进行AngularJS的项目开发,生产时Minified JS文件有没有遇到下面问题:

    angular.module("myApp", [])
    .controller("mainController", function($scope) {
    	$scope.message = "Hello, Benjamin!";
    });	

    在这个例子中,Angular解析后知道它需要使用$scope依赖,下面我们看看最小化的情况:

    angular.module("myApp",[]).controller("mainController",function(a){a.message="Hello, Benjamin!";});

    Minified后$scope被最小化成了变量a,此时Angular无法去解析声明的依赖。因此会报错。

    二、解决方式

    那么如何解决这个问题呢?下面是一些解决方式,如果你有其它好的解决方式,欢迎留言。

    方式一:显示声明依赖注入

    var mainController = function($scope) {
    	$scope.message = "Hello, Benjamin!";
    };
    
    angular.module("myApp", [])
    .controller("mainController", mainController);	
    
    mainController['$inject'] = ['$scope'];

    Minified

    var mainController=function(a){a.message="Hello, Benjamin!";};angular.module("myApp",[]).controller("mainController",mainController);mainController["$inject"]=["$scope"];
    

    方式二:内嵌式依赖

    angular.module("myApp", [])
    .controller("mainController", ['$scope', '$http', function($scope, $http) {
    	$scope.message = "Hello, Benjamin!";
    }]);	

    Minified

    angular.module("myApp",[]).controller("mainController",["$scope","$http",function(a,b){a.message="Hello, Benjamin!";}]);
    

    这种方式,在使用模块化时需要我们有好的编码习惯。

    方式三:使用ng-annotate

    关于ng-annotate的详细信息请戳这里,常使用在NodeJS环境。 Install:

    $ npm install -g ng-annotate

    Using:

    $ ng-annotate OPTIONS <file>

    使用时,我们可以结合Gulp、Grunt等自动化工具使用,提高开发效率。

    三、方式对比

    对比以上方式,个人比较偏向方式二,但是如果项目(自动化)生产中已经产生此问题,可配合gulp,Grunt自动化工具使用解决问题则较为方便。

    转载声明:

    本文标题:Minifying Angular应用时产生的问题

    本文链接:http://www.zuojj.com/archives/1069.html,转载请注明转自Benjamin-专注前端开发和用户体验

  • 相关阅读:
    如何做好接口测试?【转载】
    AutoIT 实现Firefox上传文件
    AutoIT 实现Firefox下载
    测试工具的选择和使用
    JMeter学习参数化User Defined Variables与User Parameters
    JMeter学习(六)集合点
    JMeter学习(五)检查点
    JMeter学习(四)参数化
    JMeter学习(三)元件的作用域与执行顺序
    JMeter学习(二)录制脚本
  • 原文地址:https://www.cnblogs.com/cuew1987/p/4091697.html
Copyright © 2011-2022 走看看