2014-12-21 52 views
0

我已经通过亭子安装茉莉:包括与链轮特定文件

├── angular#1.3.8 (1.3.9-build.3719+sha.a3c3bf3 available) 
├─┬ angular-animate#1.3.8 (1.3.9-build.3719+sha.a3c3bf3 available) 
│ └── angular#1.3.8 (latest is 1.3.9-build.3719+sha.a3c3bf3) 
├─┬ angular-cookies#1.3.8 (1.3.9-build.3719+sha.a3c3bf3 available) 
│ └── angular#1.3.8 
├─┬ angular-resource#1.3.8 (1.3.9-build.3719+sha.a3c3bf3 available) 
│ └── angular#1.3.8 
├─┬ angular-route#1.3.8 (1.3.9-build.3719+sha.a3c3bf3 available) 
│ └── angular#1.3.8 
├─┬ bootstrap#3.3.1 
│ └── jquery#2.1.3 
├── jasmine#2.1.3 
└── require#a45d433fdc 

但是,我怎么包括在我的项目?

根据their homepage我需要包括:

jasmine.js 
jasmine-html.js 
boot.js 

然而,当我尝试包括jasmine.js与我的专用规格页面上链轮我得到一个错误:

//= require jasmine 

给我:

Sprockets::FileNotFound 
couldn't find file 'jasmine' 

自举,角度和角度模块所有与链轮完美地工作:

//= require jquery 
//= require jquery_ujs 
//= require angular 
//= require angular-resource 
//= require angular-route 
//= require angular-cookies 
//= require bootstrap 

但不是茉莉:(

我不想用的宝石,因为我想亭子是我的所有客户方库incharge。

有没有一种方法可以用链轮硬编码路径?我可以看到我需要的文件。他们位于:

vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.js 
vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine-html.js 
vendor/assets/bower_components/jasmine/lib/jasmine-core/boot.js 

回答

1

引导,角,角模块和茉莉之间的区别是,他们都有一个bower.jsonjasmine缺少它。 Bower将能够解析一个没有bower.json文件的包,但它有一些缺点。
在这个article很好地描述链轮的方式与鲍尔组件的作品。简短的版本是,处理像//= require bootstrap链轮一个指令时会:

  • 链轮将搜索资产路径引导
  • 如果找到,它会检查其文件或目录。在导轨 的应用程序中,bower在目录bootstrap下安装了此lib。
  • 如果是目录,则检查该目录是否包含bower.json文件。在 rails应用程序中,bootstrap文件夹确实有bower.json文件。
  • 它解码json文件,并解析包含文件的主字段,并返回所需的资产。现在

,茉莉没有bower.json文件。它不会阻止鲍尔解决它,但这意味着链轮将而不是找到一个主要文件。此
一个解决方案是提供需要directive一个logical或相对路径要包括,例如茉莉文件:

//= require jasmine/lib/jasmine-core/jasmine.js 

这是假设vendor/assets/bower _components是链轮load path的一部分。