【问题标题】:'Uncaught TypeError: angular.module(...).run(...) is not a function' in Grunt minified js-file'Uncaught TypeError: angular.module(...).run(...) is not a function' in Grunt minified js-file
【发布时间】:2016-10-24 18:44:35
【问题描述】:

我的代码在开发模式下工作,未压缩。但是当我使用 grunt 的缩小功能并在生产模式下运行应用程序时,我得到了那个错误:Uncaught TypeError: angular.module(...).run(...) is not a function

当我查看 Google Chrome 开发者工具中的错误时,我得到了您在屏幕截图中看到的内容。有人知道问题出在哪里吗?

我在 Angular-Fullstack 中使用 Angular 1.4+。错误发生在vendor.{{randomstring}}.js

感谢大家的支持!

【问题讨论】:

  • 使用数组语法进行依赖注入。
  • 是在任何地方都需要还是仅在某些情况下需要?
  • DI在缩小时需要。
  • 谢谢,这很有道理。没想到。会尽力让您保持最新状态。

标签: angularjs gruntjs minify angular-fullstack


【解决方案1】:

这里有 2 个问题。

  1. 依赖注入。您可以手动编辑档案或使用https://github.com/mgol/grunt-ng-annotate,这将自动为您完成。

  2. 串联。检查这个 grunt 插件https://github.com/gruntjs/grunt-contrib-concat 这里的问题是 javascript 不理解函数何时结束/启动,因为没有分隔标记,请检查错误在哪里。

    })(函数(a,b) {

应该是:

});(function(a,b) {

检查 grunt-contrib-concat 的“使用自定义分隔符连接”示例

【讨论】:

  • 谢谢达尼洛。使用带有类和构造函数的控制器变体时,如何在数组注释中手动注入依赖项?
  • 我在类中使用static $inject = ['$scope', ...];,在构造函数之前。我还在 concat 函数中添加了分隔符。然后我再次构建了应用程序,但仍然出现该错误。
  • 应该没问题。错误在同一个地方?做注释的另一种方法是这样的: someModule.controller('MyController', ['$scope', 'dep1', 'dep2', function($scope, dep1, dep2) {
  • 是的,不幸的是,这方面没有任何改变。你还有什么想法吗?我应该分享更多代码还是什么?
  • 是的!如果你能做一个朋克乐手,那就太棒了!
猜你喜欢
  • 2017-04-13
  • 1970-01-01
  • 2022-10-15
  • 2015-09-18
  • 2020-03-17
  • 2020-01-06
  • 2021-03-10
  • 2015-01-19
  • 2021-09-30
相关资源
最近更新 更多