【问题标题】:App module is not available, misspelled or forgot to load - after grunt build应用程序模块不可用、拼写错误或忘记加载 - 在 grunt 构建之后
【发布时间】:2016-03-09 08:52:12
【问题描述】:

我已经使用yeomangenerator-angular 构建了一个应用程序。

我已经添加了我的代码并注释掉了 yeoman 自动生成的代码,以供参考。

当我运行grunt serve 时,一切正常,但是当我构建代码(minify + concat + uglify)时,vendor.js 文件抛出一个错误,指出我的主应用程序模块不可用,即使我的所有依赖项都已加载很好,当然它们都不依赖于我的应用程序。

这就是我的scripts.js 构建块在我的index.html 文件中的样子:

<!-- build:js({.tmp,app}) scripts/scripts.js -->
<!--<script src="scripts/controllers/main.js"></script>-->
<!--<script src="scripts/controllers/about.js"></script>-->
<script src="app.templates.js"></script>
<script src="app.envConfig.js"></script>
<script src="app.js"></script>
<script src="components/auth/auth.srv.js"></script>
<script src="app.routes.js"></script>
<!-- endbuild -->

注意:app.templates.jsapp.envConfig.js 是我编写和使用的独立模块,不是主应用模块的一部分。

这是我的app.js 代码:

angular
  .module('my-app', [
    'ngAnimate',
    'ngAria',
    'ngCookies',
    'ngResource',
    'ngTagsInput',
    //'ngRoute',
    'ngSanitize',
    'ngTouch',
    'ui.router',
    'ui.bootstrap',
    'my.templates',
    'envConfig'
]);

我遇到了this 的答案,但看起来我的代码没问题。

我做错了什么?

【问题讨论】:

    标签: javascript angularjs gruntjs yeoman yeoman-generator-angular


    【解决方案1】:

    当 grunt 使用 grunt serve 提供文件时,它会从它提供给实时服务器的内容中删除所有注释代码(html/css/js),但是,当 grunt 正在构建时,它会首先注入模块它需要构建,即使是注释掉的那些,如果它们在构建块中。

    连接过程将在app.js 模块之前插入main.jsabout.js 控制器代码,即使它已被注释掉。

    所以事实证明main.jsabout.js 控制器将在主应用程序模块创建之前加载,从而引发关于它不可用的错误。

    您应该完全删除注释行或将它们移出构建块。

    【讨论】:

      猜你喜欢
      • 2015-10-02
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 2017-09-26
      • 2016-07-21
      • 2017-06-29
      相关资源
      最近更新 更多