Usemin和多个构建配置

时间:2015-08-14 04:53:36

标签: javascript gulp gulp-usemin

以下是我的index.html文件中的usemin构建配置示例

<!-- build:js js/one.js -->
<script src="app/modules/one/one.js"></script>
<script src="app/modules/one/two.js"></script>
<script src="app/modules/one/three.js"></script>
<!-- endbuild -->

<!-- build:js js/two.js -->
<script src="app/modules/two/one.js"></script>
<script src="app/modules/two/two.js"></script>
<script src="app/modules/two/three.js"></script>
<!-- endbuild -->

对于开发版本,我不想缩小脚本,我希望每个模块都有自己的js文件。所以运行后的index.html将是

<script src="js/one.js"></script>
<script src="js/two.js"></script>

对于生产版本,我想缩小脚本并将它们连接成一个文件。所以index.html将是

<script src="js/myApp.js"></script>

我尝试了以下操作,但它无效:

<!-- build:myApp js/myApp.js -->
<!-- build:js js/one.js -->
<script src="app/modules/one/one.js"></script>
<script src="app/modules/one/two.js"></script>
<script src="app/modules/one/three.js"></script>
<!-- endbuild -->

<!-- build:js js/two.js -->
<script src="app/modules/two/one.js"></script>
<script src="app/modules/two/two.js"></script>
<script src="app/modules/two/three.js"></script>
<!-- endbuild -->
<!-- endbuild -->

并运行这样的use-min任务(prod任务中的prod将设置为true,dev任务中将为false) -

usemin({
          myApp: prod?[uglify({mangle:true})]:'',
          js: prod?'':[uglify({mangle:false})]
      }).

我可以保留两个index.html文件并对其进行管理。但是我想知道这可以用一个index.html实现吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

看起来您正在使用相同的管道ID: js

 <!-- build:js js/one.js -->
 <!-- build:js js/two.js -->

尝试使用如下所示的唯一管道ID:

 <!-- build:js1 js/one.js -->
 <!-- build:js2 js/two.js -->