应用程序模块不可用、拼写错误或忘记加载 - 在 grunt 构建之后
App module is not available, misspelled or forgot to load - after grunt build
我使用 yeoman
的 generator-angular
构建了一个应用程序。
我已经添加了我的代码并注释掉了 yeoman 自动生成的代码,以供参考。
当我 运行 grunt serve
一切正常,但是当我构建代码(缩小 + concat + uglify)时 vendor.js
文件抛出一个错误,说我的主要应用程序模块是不可用,即使我所有的依赖项都加载正常并且 none 当然不依赖于我的应用程序。
这就是我的 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.js
& app.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
提供文件时,它会从它提供给实时服务器的内容中删除所有注释代码 (html/css/js),但是,当 grunt 正在构建时,事实证明它会首先注入它需要构建的模块,即使是注释掉的模块,如果它们在构建块中。
连接过程将在 app.js
模块之前插入 main.js
& about.js
控制器代码,即使它被注释掉了。
所以结果是 main.js
和 about.js
控制器将在 之前加载 主应用程序模块被创建,因此抛出一个关于它没有被创建的错误可用。
您应该完全删除注释行或将它们移出构建块。
我使用 yeoman
的 generator-angular
构建了一个应用程序。
我已经添加了我的代码并注释掉了 yeoman 自动生成的代码,以供参考。
当我 运行 grunt serve
一切正常,但是当我构建代码(缩小 + concat + uglify)时 vendor.js
文件抛出一个错误,说我的主要应用程序模块是不可用,即使我所有的依赖项都加载正常并且 none 当然不依赖于我的应用程序。
这就是我的 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.js
& app.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
提供文件时,它会从它提供给实时服务器的内容中删除所有注释代码 (html/css/js),但是,当 grunt 正在构建时,事实证明它会首先注入它需要构建的模块,即使是注释掉的模块,如果它们在构建块中。
连接过程将在 app.js
模块之前插入 main.js
& about.js
控制器代码,即使它被注释掉了。
所以结果是 main.js
和 about.js
控制器将在 之前加载 主应用程序模块被创建,因此抛出一个关于它没有被创建的错误可用。
您应该完全删除注释行或将它们移出构建块。