【问题标题】:Grunt deleting index.html content咕噜删除 index.html 内容
【发布时间】:2014-03-31 05:06:25
【问题描述】:

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

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

【问题讨论】:

  • 能否请您提供您的Gruntfile.js,以及有问题的index.html?没有它,就不可能给出准确的答案。

标签: gruntjs yeoman


【解决方案1】:

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

<!-- 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 --savebower install --save-dev安装依赖,它会自动更新bower.json

【讨论】:

【解决方案2】:

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

每当您构建时,dist 文件都会被您的 app/index.html 覆盖

【讨论】:

    【解决方案3】:

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

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

    调试 grunt build,我发现文件在步骤 '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"]
        }
      }
    }
    

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多