2014-12-21 80 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的一部分。