Ich möchte zwei Ziele in meinem Projekt. Eine für Admin und eine für Benutzerseiten. Ich möchte nicht, dass die Admin-Plugins aus Leistungsgründen in Benutzerseiten integriert werden. Ich erhalte jedoch diesen Fehler bei dem Versuch, einen Build auszuführen:Grunt useminPrepare und usemin funktioniert nicht mit mehreren Aufgaben und Dateien (concat schlägt fehl)
Running "useminPrepare:admin" (useminPrepare) task
Configuration changed for concat, uglify, cssmin
Running "useminPrepare:user" (useminPrepare) task
Configuration changed for concat, uglify, cssmin
No "concat" targets found.
Warning: Task "concat" failed. Use --force to continue.
Ich kann keine concat Aufgabe in GruntFile.js finden, um zu sehen, was los ist. Meine GruntFile.js usemin Aufgaben sind wie folgt:
useminPrepare: {
admin: {
html: 'app/admin-index.html',
options: {
dest: 'dist'
}
},
user: {
html: 'app/index.html',
options: {
dest: 'dist'
}
},
},
usemin: {
admin: {
html: 'dist/admin-index.html'
},
user: {
html: 'dist/index.html'
}
}
grunt.registerTask('build', [
'clean:dist',
'less',
'useminPrepare:admin',
'useminPrepare:user',
'concat',
'copy:dist',
'cssmin',
'uglify',
'filerev',
'usemin:admin',
'usemin:user',
'htmlmin'
]);
und die HTML-Pendants sind folgende für js Dateien. Zunächst wird der Admin-index.html:
<!-- build:js(.) scripts/vendor.js -->
<!-- jQuery and Bootstrap -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- MetsiMenu -->
<script src="bower_components/metisMenu/dist/metisMenu.min.js"></script>
<!-- Peace JS -->
<script src="bower_components/pace/pace.min.js"></script>
<!-- Angular scripts-->
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<!-- Angular Dependiences -->
<!-- -->
<!-- -->
<!-- -->
<!-- Datatables -->
<script src="bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
<script src="bower_components/datatables.net-buttons/js/dataTables.buttons.min.js"></script>
<script src="bower_components/jszip/dist/jszip.min.js"></script>
<script src="bower_components/pdfmake/build/pdfmake.min.js"></script>
<script src="bower_components/pdfmake/build/vfs_fonts.js"></script>
<script src="bower_components/datatables.net-buttons/js/buttons.html5.min.js"></script>
<script src="bower_components/datatables.net-buttons/js/buttons.print.min.js"></script>
<script src="bower_components/datatables.net-buttons/js/buttons.colVis.min.js"></script>
<!-- Datepicker -->
<script src="bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>
<script src="bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js"></script>
<script src="bower_components/datepair.js/dist/datepair.js"></script>
<!-- Timepicker -->
<script src="bower_components/jt.timepicker/jquery.timepicker.js"></script>
<!-- endbuild -->
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<!-- Custom and plugin javascript -->
<script src="scripts/inspinia.js"></script>
<!-- Anglar App Script -->
<script src="scripts/app.js"></script>
<script src="scripts/config.js"></script>
<script src="scripts/directives.js"></script>
<script src="scripts/controllers.js"></script>
<!-- endbuild -->
Und nun die Datei index.html:
<!-- build:js(.) scripts/uivendor.js -->
<!-- jQuery and Bootstrap -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- Datepicker -->
<script src="bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>
<script src="bower_components/bootstrap-datepicker/dist/locales/bootstrap-datepicker.tr.min.js"></script>
<!-- endbuild -->
Als ich die 'concat' Aufgabe entfernen in' grunt.registerTask' es jetzt compains über 'cssmin' Aufgabe mit dem gleichen Fehler. Ich denke, diese Aufgaben funktionieren nicht mit mehreren Zielen von UseMin und müssen explizit wie in der zweiten Option beschrieben konfiguriert werden. Aber ich habe eine bessere Lösung gefunden. Ich habe nur die Usemin-Aufgaben zusammengeführt und stattdessen Arrays von Dateien verwendet. Jetzt macht der Build, was ich will. Sehen Sie sich meine Antwort unten an. –
Ja, Sie können Array von Dateien als Quelldateien verwenden. Danke für deinen Kommentar Baris. –