Grunt删除index.html内容

时间:2014-03-31 05:06:25

标签: gruntjs yeoman

我注意到与Yeoman的一些项目,当我运行任何grunt buildgrunt serve命令时,内容(脚本标签,链接标签等)被删除我的index.html文件。关于为什么会这样的想法?以及如何解决它。似乎特别是从我的bower_components文件夹导入时发生了这种情况,但我也有过删除font-awesome cdn的实例。

如果它有所作为,我正在使用Yeoman为AngularJS开发。

3 个答案:

答案 0 :(得分:3)

我有时会遇到这个。更改的部分包含在

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

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

bower:js/css标记中的内容是从bower.json生成的,因此如果bower.json中未列出js / css文件,则会从bower:js/css中删除该文件。

好的做法是使用bower install --savebower install --save-dev来安装依赖项,它会自动更新bower.json

答案 1 :(得分:0)

可能有点明显,但是您正在编辑app目录中的index.html而不是dist / index.html副本?

每当您构建

时,您的app / index.html都会覆盖dist文件

答案 2 :(得分:0)

我找到了另一种解决方案。

由于您正在使用的lib的bower.json中缺少信息而发生这种情况。

我已经发现文件在步骤'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"]
    }
  }
}

希望这有帮助!