加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Webpack,angular和ng-annotate-loader – 带有注释

发布时间:2020-12-17 17:25:30 所属栏目:安全 来源:网络整理
导读:我试图使用Webpack捆绑一个Angular应用程序,并在捆绑缩小后遇到问题.此语法具有依赖项的手动注释,可用于: var app = angular.module('app',[ 'ui.router']).config(['$locationProvider','$stateProvider',($locationProvider,$stateProvider) = { $locatio
我试图使用Webpack捆绑一个Angular应用程序,并在捆绑缩小后遇到问题.此语法具有依赖项的手动注释,可用于:

var app = angular.module('app',[
    'ui.router'
])
.config(['$locationProvider','$stateProvider',($locationProvider,$stateProvider) => {
    $locationProvider.html5Mode(true);
    $stateProvider
        .state('root',{
            url: '/',views: {
                '': {
                    template: '<p>Hello!</p>'
                }
            }
        });
}]);

而此语法产生$injector:modulerr错误:

var app = angular.module('app',[
    'ui.router'
])
.config(($locationProvider,views: {
                '': {
                    template: '<p>Hello!</p>'
                }
            }
        });
});

我正在为Webpack使用ng-annotate-loader.以下是配置文件的相关部分:

module: {
    loaders: [
        {
            test: /.js$/,exclude: /node_modules/,loader: 'ng-annotate!babel?stage=1'
        },

但这并不能解决[$injector:modulerr]错误.试图改变加载器:’ng-annotate!babel?stage = 1’与加载器的行:[‘ng-annotate’,’babel?stage = 1′],没有任何改进.你能建议我怎么解决它吗?

编辑:最终发现我的问题基本上是Angular ng annotate does not work with babel的重复

EDIT2:有人指出ng-annotate无法注释角度模块的.config,因为我将angular作为es6模块导入而不是将其声明为变量,这显然混淆了ng-annotate.

解决方法

好吧,我最终在 ng-annotate’s Readme中找到的是一个字符串’ngInject’;放置在函数内部时,可以显示ng-annotate要注释的函数.

我尝试使用我的设置,它工作正常.

但是以一种不需要在函数内部使用这种无关标记字符串的方式设置ng-annotate-loader会很棒.

P.S.:我的问题的Edit2部分包含最终的答案 – 在我的例子中,ng-annotate的静态分析器不满意,因为angular被导入为ES6模块而不是使用require语法声明为变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读