2015-07-13 43 views
4

我使用yeoman webapp生成器來生成模板來啓動我的工作。在這一刻,我bower.json看起來像這樣Grunt wiredep沒有連接一些涼亭組件

 
    { 
    "name": "sample-project", 
    "private": true, 
    "dependencies": { 
     "bootstrap-sass": "~3.3.5", 
     "modernizr": "~2.8.3", 
     "fontawesome": "~4.3.0", 
     "jquery.smooth-scroll": "~1.5.5", 
     "animate.css": "~3.3.0", 
     "jquery.appear": "*" 
    }, 
    "overrides": { 
     "bootstrap-sass": { 
     "main": [ 
      "assets/stylesheets/_bootstrap.scss", 
      "assets/fonts/bootstrap/*", 
      "assets/javascripts/bootstrap.js" 
     ] 
     } 
    }, 
    "devDependencies": { 
     "chai": "~3.0.0", 
     "mocha": "~2.2.5" 
    } 
    } 

現在,在命令提示符我鍵入此同時咕嚕手錶運行

bower install bootstrap-datepicker -S 

後來我發現"bootstrap-datepicker": "~1.4.0"插入依賴關係部分,然後

<script src="bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js"></script> 

會自動wiredep到我的index.html,它會成爲該

<!-- build:js(.) scripts/vendor.js --> 
    <!-- bower:js --> 
    . 
    . 
    <script src="bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js"></script> 
    <!-- endbower --> 
    <!-- endbuild --> 

然後我嘗試安裝另一個亭子組件到我的webapp

bower install country-region-selector -S 

接下來的事情發生的情況是,我發現"country-region-selector": "~0.1.8"正在相依像自舉日期選擇器bower.json的部分,但相應的

<script src="bower_components/country-region-selector/dist/crs.min.js"></script> 

不會在我的index.html中獲得wiredep。

所以我的問題是爲什麼grunt wiredep不適用於某些涼亭組件?同樣的事情發生在form.validation有人能解釋這個問題嗎?

回答

3

grunt-wiredep以非常特定的方式工作。依賴關係應該在bower.josnmain屬性中列出,就像您從bootstrap中提到的示例一樣。

您面臨的問題可能是那些軟件包沒有main屬性,或者它使用字符串中的多個文件而不是數組。

爲了解決這個問題,你可以隨時定義包的覆蓋main屬性喜歡下面...

在你的咕嚕文件:

wiredep: { 
    ... 
    overrides: { 
     'package-name': { 
     'main': [ 
      'link-to-css-file.css', 
      'link-to-js-file.js' 
     ] 
     }, 
    }, 
}, 
+1

這正是我錯過了!感謝您指出! – gddabe

+0

@Ahmed Alfy - 任何想法這裏發生什麼:http://stackoverflow.com/questions/37384538/grunt-task-wiredp-is-not-injecting-ngcordova?noredirect = 1#comment62335359_37384538 – Smitha

+1

非常感謝這一點,解決了我的問題! – drabbitharv