Grunt Build不与Bower安装的组件一起使用

时间:2013-05-23 00:23:41

标签: angularjs yeoman gruntjs angular-ui-bootstrap

我正在尝试运行

grunt build

创建的目录中
yo angular

我通过凉亭安装了angular-ui-bootstrap。在本地我需要添加

<script src="components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>

到我的index.html和

angular.module('app', ['ngResource', 'ngCookies', 'ui.bootstrap'])

到我的app.js.但是每次我尝试构建应用程序时都会出现此错误

错误:没有模块:ui.bootstrap         在错误()         at /Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:1104:17         在确保(/Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:1045:38)         在模块(/Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:1102:14)         at /Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:2768:24         at Array.forEach(native)         在forEach(/Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:131:11)         在loadModules(/Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:2764:5)         at /Users/nicholasshook/angular/pokerfund/angular_app/app/components/angular/angular.js:2769:38         at Array.forEach(native)     TypeError:无法读取未定义的属性'awesomeThings'         在null。 (/Users/nicholasshook/angular/pokerfund/angular_app/test/spec/controllers/main.js:20:17)

3 个答案:

答案 0 :(得分:7)

如果你已经通过凉亭安装了ui-bootstrap,你还需要更新你的karma.conf.js以便通过grunt测试。

ui-bootstrap-tpls.min.js文件中添加karma.conf.js条目:

// list of files / patterns to load in the browser
files = [
  JASMINE,
  JASMINE_ADAPTER,
  'app/components/angular/angular.js',
  'app/components/angular-mocks/angular-mocks.js',
  'app/components/angular-bootstrap/ui-bootstrap-tpls.js',
  'app/scripts/*.js',
  'app/scripts/**/*.js',
  'test/mock/**/*.js',
  'test/spec/**/*.js'
];

答案 1 :(得分:1)

一些想法:

  1. 确认当您进行凉亭安装时,文件已从其存储库成功下载,并且实际上已添加到您在脚本标记中列出的位置的文件结构中,即components/angular-bootstrap/ui-bootstrap-tpls.min.js

  2. 确认脚本标记的正确顺序,即您的<script src="components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>标记需要在<script src="scripts/app.js"></script>之前列出。如果没有,那就解释了为什么app.js找不到模块'ui.bootstrap'。

  3. 希望其中一个可以帮到你。我使用bower install angular-bootstrap并且没有问题。

答案 2 :(得分:0)

或者,如果karma.conf.js不是罪魁祸首,请验证您添加的所有新库是否已在build.config.js下的grunt vendor_files中注册。这是我的问题。