Grunt删除index.html内容

3
我注意到在使用Yeoman的一些项目中,当我运行任何一个grunt build, grunt serve命令时,我的index.html文件中的内容(包括脚本标签、链接标签等等)会被删除。不知道为什么会发生这种情况?如何解决?似乎特别是从bower_components文件夹导入的内容会出现这个问题,但我也遇到过font-awesome cdn被删除的情况。
如果有区别的话,我是使用Yeoman开发AngularJS应用程序的。

你能提供你的 Gruntfile.js 和出错的 index.html 文件吗?如果没有这些文件,就很难给出精确的答案。 - Kosmotaur
3个回答

3

我有时也会遇到这种情况。修改的部分用标签包裹起来。

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

或者

<!-- bower:js -->
<script src="bower_components/....."></script>
......
<!-- endbower -->
标签中的内容是从文件生成的,因此如果js/css文件没有在中列出,则会从中删除。
良好的实践是使用bower install --savebower install --save-dev安装依赖项,它会自动更新。

谢谢。如果有人遇到相同的问题,请查看 https://github.com/yeoman/generator-angular/issues/545 中 @stephenplusplus 的评论。 - parsenz

0

可能有点显而易见,但您是在应用程序目录中编辑index.html,而不是dist/index.html副本吗?

每当构建时,您的app/index.html将覆盖dist文件。


0

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

这是由于您使用的库的bower.json中缺少信息导致的。

在调试grunt build时,我发现该文件在“wiredep”步骤中被删除了。

文档中,有一部分讲述了问题。 基本上,如果库的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"]
    }
  }
}

希望这能帮到你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接