我有一个AngularJS应用程序,我正在为usemin工作。这个应用程序有2个html页面,两个页面都包含一个缩小为common.js的块,其他页面包括为这些特定页面缩小的js。
page1.html
<!-- build:js scripts/common.js -->
<!-- bower:js -->
<script src="a.js"></script>
<script src="b.js"></script>
<!-- endbower -->
<!-- endbuild -->
<!-- build:js scripts/page1.js -->
<!-- bower:js -->
<script src="c.js"></script>
<script src="d.js"></script>
<!-- endbower -->
<!-- endbuild -->page2.html
<!-- build:js scripts/common.js -->
<!-- bower:js -->
<script src="a.js"></script>
<script src="b.js"></script>
<!-- endbower -->
<!-- endbuild -->
<!-- build:js scripts/page2.js -->
<!-- bower:js -->
<script src="e.js"></script>
<script src="f.js"></script>
<!-- endbower -->
<!-- endbuild -->Gruntfile.js
useminPrepare: {
html: ['<%= yeoman.app %>/page1.html', '<%= yeoman.app %>/page2.html'],
options: {
dest: '<%= yeoman.dist %>'
}
},Usemin感到不安,因为在两个文件中都定义了common.js,错误为:致命错误:不同的源试图写入相同的目标:。我认为我需要在useminPrepare中同时包含page1和page2,以便正确地生成page1.js和page2.js。人们如何解决这个问题?
发布于 2014-11-02 20:23:00
通常使用angular的人会创建单页面应用程序,并且只为整个页面的骨架创建一个“主”index.html。通过这种方式,您只需处理一组文件。使用ui-router、ng-includes或其他命令将不同的子页面呈现到给定的div中。
发布于 2015-02-27 05:04:50
当我遇到这个问题时,我遇到的问题是,在build/endbuild html注释之间,代码必须完全相同。看起来它应该在文件名上匹配,但它似乎在注释之间的内容上匹配。甚至tab空格也可能是个问题。
发布于 2015-10-02 01:56:43
未测试的警告。
您可以创建一个自定义块,它会将块重写为<script src="scripts/common.js"></script>,但不会试图在usemin进程中“构建”脚本。
options: {
blockReplacements: {
noBuild: function (block) {
return '<script src="scripts/common.js"></script>';
}
}然后,在您不想为其构建通用脚本,但希望替换其路径的所有HTML文件中,写入以下内容:
<!-- build:noBuild scripts/common.js -->
<!-- bower:js -->
<script src="a.js"></script>
<script src="b.js"></script>
<!-- endbower -->
<!-- endbuild -->https://stackoverflow.com/questions/26281756
复制相似问题