3

我在 windows7 上将 yeoman 与角度生成器一起用于 Web 应用程序。运行 yo angular 后,我运行 grunt 来构建应用程序以进行部署。我的 dist 文件夹中的 index.html 文件随着 css 和 js 文件的连接和缩小而相应更改。

例如,当我将新的 js 文件添加到 index.html 时

<script src="bower_components/json3/lib/json3.js"></script>

我再次运行 grunt 来构建;index.html 文件不再将 css aan js 文件更改为缩小的文件,它基本上与 app 目录中的 index.html 显示完全相同。

我还尝试将 json3.js 放入 build:js 注释中:

 <!-- build:js scripts/json.js -->
 <script src="bower_components/json3/lib/json3.js"></script>
 <!-- endbuild -->

我在这里缺少什么吗?我必须更改 grunt 文件中的某些内容,例如 usemin 部分吗?

4

4 回答 4

9

我反复碰到这个问题,并在我的案例中找到了解决方案。

我正在使用 vs 2012 为 grunt 任务创建我的 HTML 和 cmd。看来我的 Line 结尾不正确,所以我将它们更改为 Unix (LF) 并且 grunt-usemin 做了它的事情。将行尾设置为 Windows (CR LF) grunt-usemin 时不会正确更新 index.html 页面。

希望这对某人有帮助!

于 2014-02-27T11:47:34.083 回答
1

请注意,您的自定义 JavaScript 包含在build:js({.tmp,app})部分中,这就是它们在单个文件中被缩小的原因。
我不建议将 Bower 获得的库放在build:js({.tmp,app})- 请参阅以下评论:https ://stackoverflow.com/a/19034513/1432478 。

一个好主意可能是查看 grunt 的cdnify任务。
json3 CDN

于 2013-11-08T04:29:35.350 回答
1

我有同样的问题。我能找到修复它的唯一方法是在htmlmin任务下的 Gruntfile 中。

当 index.html 文件没有变化时,我的htmlmin任务如下:

htmlmin: {
  dist: {
    options: {
      //options
    },
    files: [{
      expand: true,
      cwd: '<%= yeoman.app %>',
      src: ['*.html', 'views/{,*/}*.html'],
      dest: '<%= yeoman.dist %>'
    }]
  }
}

如果我只是删除了 中的*.html部分html:files:src,则构建工作正常。我的新htmlmin任务如下所示:

htmlmin: {
  dist: {
    options: {
      //options
    },
    files: [{
      expand: true,
      cwd: '<%= yeoman.app %>',
      src: ['views/{,*/}*.html'],
      dest: '<%= yeoman.dist %>'
    }]
  }
}

希望这可以帮助某人。我花了一段时间才弄清楚为什么 index.html 文件没有被正确编辑。

于 2014-02-04T21:28:34.817 回答
0

我遇到了同样的问题,无法添加 angular-route 和 angular-animate - 我的意思是对文件的引用 - 它们的脚本标签 - 没有保存到 index.html 文件中。

我发现这是因为我在 index.html 文件中的标签之前输入了他们的脚本标签。把它们放在之后,它工作得很好。

于 2014-02-24T16:02:15.697 回答