【问题标题】:Angular Uncaught Error: [$injector:modulerr] after merging js files to one fileAngular Uncaught Error: [$injector:modulerr] 将 js 文件合并到一个文件后
【发布时间】:2015-10-05 08:41:28
【问题描述】:

我创建了一个 Angular 应用程序,如果我在 index.html 中分别使用 controllers.js、routes.js、directives.js 等,该应用程序运行良好。但是,当我使用 gulp-concat 将 js 文件合并到一个 js 文件中时(与我在 HTML 中包含文件的顺序相同),我收到错误 Angular Uncaught Error: [$injector:modulerr] 我不确定由于错误不是很具体,如何处理

【问题讨论】:

  • 这是完整的错误吗?通常它会说明它不能注入的控制器、服务等。你也在缩小你的JavaScript吗?如果是这样,您是否使用数组表示法?
  • 听起来你没有使用缩小安全语法声明你的控制器,但是没有看到任何代码就不可能确定。如果您使用的是 Angular 1.3 或更高版本,则可以在与 ng-app 相同的元素上使用 ng-strict-di 来测试依赖注入问题。
  • 你能添加你的 gulp 代码和你的应用程序结构吗?
  • @ste2425 我没有缩小 JS(我打算这样做,但在那一步之前我被卡住了)但是根据我被重定向到的 URL 告诉我我错过了模块,将检查再次执行 gulp 任务
  • @SaurabhUdaniya 如果您已修复它,您可以发布您自己问题的答案并接受它。可以帮助有类似问题的其他人。

标签: javascript angularjs gulp-concat


【解决方案1】:

我修复了它,在经历了错误之后,我发现我的 gulp 任务正在跳过应用程序中存在的一些 js 文件,我修复了 gulp 任务并再次运行它,从而解决了问题。之后,我通过将 mangle 设置为 false 来丑化 js 文件,这样函数参数应该保持不变,然后一切都可以轻松运行

【讨论】:

    【解决方案2】:

    我在使用 Gulp 时遇到了同样的问题。使用 CDN 可以正常工作,但使用本地 .min 文件时出现错误:[$injector:modulerr]

    我通过添加以下内容解决了这个问题:

    .pipe(uglify({ mangle: false })
    

    【讨论】:

      【解决方案3】:

      我解决了这个问题,确保我正确地包含了所有依赖注入 (DI),方法是为它们提供一个名称,例如 .config UI Router DI:

      .config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
      
          $stateProvider   . . .
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-27
        相关资源
        最近更新 更多