Usemin"尝试写入同一目的地的不同来源"

Jus*_*tin 15 minify angularjs gruntjs grunt-usemin

我有一个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 -->
Run Code Online (Sandbox Code Playgroud)

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 -->
Run Code Online (Sandbox Code Playgroud)

Gruntfile.js

useminPrepare: {
    html: ['<%= yeoman.app %>/page1.html', '<%= yeoman.app %>/page2.html'],
        options: {
            dest: '<%= yeoman.dist %>'
        }
    },
Run Code Online (Sandbox Code Playgroud)

Usemin很难过,因为common.js在两个文件中定义并出现错误:致命错误:尝试写入同一目标的不同源:我(想)我需要在useminPrepare中包含page1和page2才能正确获取page1.js和page2.js.人们如何解决这个问题?

Laj*_*res 1

通常,有角度的人会创建单页面应用程序,并为页面的整个骨架只创建一个“主”index.html。这样您只需处理一组文件。使用 ui-router、ng-includes 或其他东西将不同的子页面渲染到给定的 div 中。

  • 但情况并非总是如此。例如,我们正在创建一个白标产品,并且我们为每个公司都有一个index.html 文件。索引文件有细微的变化,比如css文件……但是js文件本质上是一样的。 (4认同)