0

ich ein Grunt Dateien wie folgtGrunt und Uglify, mehr als eine Aufgabe ausführen?

module.exports = function(grunt) { 
grunt.initConfig({ 
pkg: grunt.file.readJSON('package.json'), 

'uglify': { 
    options: { 
     preserveComments: 'some', 
    }, 
    my_target: { 
     files: { 
     'site/assets/js/js_code.js': [ 
      /* Libs */ 
      '/js/libs/jquery_2.2.4.min.js', 
      '/js/libs/underscore_1.8.3.min.js', 
      '/js/libs/backbone_1.3.3.min.js', 

      /* Plugins */ 
      '/js/plugins/dropzone.min.js', 
      '/js/plugins/jquery.magnific-popup.min.js', 
      '/js/plugins/jquery.validate.min.js', 

      /* Build JS Functions */ 
      '/js/functions.js', 
      '/js/builder.js', 

     ] 
     } 
    } 
}, 

'sass': { 
    dist: { 
     options: { 
     style: 'expanded', 
     compass: true, 
     }, 
     files: { 
     'assets/css/styles.css': '/scss/styles.scss', 
     } //End of Files 
    } //End of Dist. 
}, //End of SASS 

watch: { 
    'JS': { 
    files: ['/js/*.js'], 
    tasks: ['uglify'], 
    options: { spawn: false }, 
    }, 
'Scss': { 
    files: ['/scss/*.scss'], 
    tasks: ['sass'], 
    options: { spawn: false }, 
    } 
} 
}); 

grunt.loadNpmTasks('grunt-contrib-uglify'); 
grunt.loadNpmTasks('grunt-contrib-sass'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 
}; 

Was ich kann nicht arbeiten, und ich habe viel Forschung aber kann nicht getan scheint eine Antwort zu finden, ist, wie uglify einzurichten mehr als eine haben Aufgabe.

Ich weiß, dass ich mehr als ein Dateiziel einrichten kann, aber ich möchte nicht, dass meine Uhr diese ausführt. Also möchte ich eine 'libs.js', 'plugins.js' und so etwas wie 'my_code.js' einrichten. Aber ich möchte nicht, dass die Bibliotheken und Plugins jedes Mal ausgeführt werden, wenn mein Code bearbeitet/aktualisiert wird. Aber was kann ich so einrichten, dass ich etwas wie, grunt uglify-libs ausführen kann.

Ist das machbar?

Vielen Dank

UPDATE

Wie pro Kommentar unten, versuche ich im Detail zu erklären. Jetzt laufe ich , die eine Ausgabedatei zurückgibt.

Ich möchte dies ändern, um drei Ausgabedateien zu haben, eine für die libs-Dateien, eine für die Plugins und die andere wäre der Code, den ich schreibe.

Also, wenn ich Grunt watch ausführen, würde das nur die Dateien in meinem Code, aber nicht die libs oder Plugins-Dateien.

Dann möchte ich in der Lage sein zu laufen, Grunt uglify-libs, würde dies dann die libs-Datei machen.

Das gleiche gilt für die Plugins, aber so etwas, Grunt uglify-plugs.

Also im Grunde möchte ich drei uplift Aufgaben, aber nur einer von ihnen wird innerhalb der Watch-Funktion ausgeführt.

Ich hoffe, dass helfen, mehr zu erklären.

Vielen Dank.

Antwort

0

Wenn ich Sie richtig verstanden habe, möchten Sie einen Grunt-Befehl verwenden, um mehrere Aufgaben zu starten. Sie können dies tun, indem Sie ein „Eltern“ Aufgaben erstellen, die mehrere Teilaufgaben wie diese Anrufe:

grunt.registerTask('uglify-libs', ['sass', 'uglify']); 
+0

sorry, ich erklären mehr - ich die Frage stellt sehr schlecht :(- Ich laufe ‚grunzen watch‘, die, Im Moment lege ich alle meine JS-Dateien in eine Datei, aber ich möchte die Dateien aufteilen, eine für alle meine Bibliotheken, Plugins und den Code, den ich schreibe. Aber ich möchte nur, dass mein Watch-Befehl auf meinem Code läuft und nicht concat/Minimiere die libs oder plugins dateien Ich habe bei anderen Projekten die Dateien verschüttet, also weiß ich, dass das machbar ist, aber ich möchte nur, dass die Uhr mit dem Code läuft, den ich schreibe, aber trotzdem etwas wie 'grunt hugify-libs ausführen kann 'und dieser eine Befehl wird nur meine libs Datei aktualisieren. –

+0

@ C0ol_Cod3r Sorry, ich verstehe es einfach nicht :( – MattDiMu

+0

Ich habe die Fragen mit einem Update aktualisiert, das hoffentlich ein wenig mehr erklärt Ich möchte es tun können –