繁体   English   中英

应用模块不可用,拼写错误或忘记加载-构建咕build声之后

[英]App module is not available, misspelled or forgot to load - after grunt build

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

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

当我运行grunt serve一切工作正常,但是当我构建代码( vendor.js + concat + vendor.js )时, 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'
]);

我遇到了这个答案,但看起来我的代码还可以。

我究竟做错了什么?

当grunt使用grunt serve提供文件时,它将从其提供给实时服务器BUT的所有注释代码(html / css / js)中删除,但是在grunt构建时,事实证明它将首先注入它需要构建的模块,即使已注释掉的内容也在构建块中。

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

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

您应该完全删除注释行,或者将其移出构建模块之外。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM