2014-03-31 142 views
3

我注意到與Yeoman的幾個項目,當我運行grunt buildgrunt serve命令中的任何一個時,內容(腳本標記,鏈接標記等)從我的index.html文件中刪除。任何想法爲什麼發生這種情況?以及如何解決它。似乎是從我的bower_components文件夾中導入的,特別是,我還有一些情況,其中的字體真棒cdn也被刪除。咕嚕刪除index.html內容

如果它有所作爲,我正在使用Yeoman爲AngularJS開發。

+0

你能否提供你的'Gruntfile.js'和有問題的'index.html'?沒有這個,就不可能給出準確的答案。 – Kosmotaur

回答

3

我遇到了這個有時被覆蓋。改變的部分被封閉在

<!-- bower:css --> 
<link rel="stylesheet" href="bower_components/......" /> 
...... 
<!-- endbower --> 

<!-- bower:js --> 
<script src="bower_components/....."></script> 
...... 
<!-- endbower --> 

bower:js/css標籤的內容是從bower.json產生,因此,如果JS/CSS文件不會在bower.json列出的,它將從bower:js/css被移除。

好的做法是使用​​或bower install --save-dev來安裝依賴項,它會自動更新bower.json

+0

謝謝。如果有人有同樣的問題,請在https://github.com/yeoman/generator-angular/issues/545 – parsenz

+0

中查看@stephenplusplus評論有用的信息 – xiaoboa

0

可能有點顯而易見,但是您正在編輯app目錄中的index.html而不是dist/index.html副本?

的DIST文件將通過您的應用程序/ index.html的,只要你建立

0

我發現了另一種解決方案。

發生這種情況是由於缺少您正在使用的lib的bower.json中的信息。

調試grunt構建,我發現該文件在步驟'wiredep'中被刪除。

docs中,有一部分提到有關問題。 基本上,如果lib的bower.json沒有在主節點中需要的文件,wiredep方法將會擦除它。

例如,用於翻譯的angular-i18n。 的文件夾是:

angular-i18n/ 
      en-us.js 
      pt-br.js 
      bower.json 

如果你看一下它的bower.json:

{ 
    "name": "angular-i18n", 
    "version": "1.6.4", 
    "license": "MIT", 
    "ignore": [ 
    "**/.*", 
    "node_modules", 
    "components", 
    "precommit.sh" 
    ] 
} 

當您添加: 如果您添加到您的 bower.json這個節點,它的工作:

{ 
    "name": "project", 
    "dependencies": { 
    "angular-i18n": "^1.6.4" 
    }, 
    "overrides" : { 
    "angular-i18n" : { 
     "main" : ["angular-locale_pt-br.js"] 
    } 
    } 
} 

希望得到這個幫助!