Da die Grunt-Konfiguration nur Json ist, können Sie Grunt-Vorlagen verwenden und haben Ihre Dateien als eine Eigenschaft der Konfig.
uglifyFiles: {
vendor: {
// this name should change based on the environment
'dest/vendor-output.js': ['src/vendor-input1.js', 'src/vendor-input2.js']
},
custom: {
'dest/custom-output.js': ['src/custominput1.js', 'src/custominput2.js']
}
},
uglify: {
production: {
options: {
compress: true
},
files: '<%= uglifyFiles %>'
},
development: {
options: {
compress: false,
beautify: true
},
files: '<%= uglifyFiles %>'
}
}
http://gruntjs.com/configuring-tasks#templates
Traurig bin nicht ganz auf diese Frage verstehen
If production could even have the destination name to custom-output.min.js that would be even more ideal.
Könnten Sie ein wenig mehr Informationen geben, oder ist die über das, was Sie wo zu erreichen versuchen?
EDIT
Scheint wie das, was Sie versuchen, den Wiederholungsteil aus DRY zu tun nimmt, wie Sie tatsächlich in jeder etwas anderen Code möchten. Es könnte getan werden, aber nicht in der JSON, müssten Sie js verwenden und Bracket-Notation verwenden, um das Ziel als einen Schlüssel zu erstellen. Ich denke, ein viel einfacherer Weg, und was für ein Grunzen für so eingerichtet wird, wäre folgendes zu tun.
vendorUglifyFiles: ['src/vendor-input1.js', 'src/vendor-input2.js'],
customUglifyFiles: ['src/custominput1.js', 'src/custominput2.js'],
uglify: {
production: {
options: {
compress: true
},
files: {
vendor: {
'dest/vendor.min.js': '<%= vendorUglifyFiles %>'
},
custom: {
'dest/custom.min.js': '<%= customUglifyFiles %>'
}
}
},
development: {
options: {
compress: false,
beautify: true
},
files: {
vendor: {
'dest/vendor.js': '<%= vendorUglifyFiles %>'
},
custom: {
'dest/custom.js': '<%= customUglifyFiles %>'
}
}
}
}
Edit: 2016.11.08, 15:12
das Niveau entfernt, das die indexOf Fehler auslöst:
vendorUglifyFiles: ['src/vendor-input1.js', 'src/vendor-input2.js'],
customUglifyFiles: ['src/custominput1.js', 'src/custominput2.js'],
uglify: {
production: {
options: {
compress: true
},
files: {
'dest/vendor.min.js': '<%= vendorUglifyFiles %>',
'dest/custom.min.js': '<%= customUglifyFiles %>'
}
},
development: {
options: {
compress: false,
beautify: true
},
files: {
'dest/vendor.js': '<%= vendorUglifyFiles %>',
'dest/custom.js': '<%= customUglifyFiles %>'
}
}
}
, dass der Trick funktioniert.
Ich versuche eine Aufgabe zu kompilieren, entweder in a verkleinerte Produktionsversion oder eine normale verschönerte Entwicklungsversion der Dateien. Das Beispiel, das du geschrieben hast, funktioniert für den ersten Teil. Jetzt sollten nur die Dateinamen entweder vendor.js für Entwicklung oder vender.min.js für die Produktionsversion sein. – Remi
Es scheint, dass die Verschachtelung von 'vendor' und' custom' unterhalb der 'production'-Aufgabe einen 'Warning: pattern.indexOf ist keine Funktion'-Fehler auslöst. Das Entfernen dieses zusätzlichen Levels macht den Trick. – Remi
Ahh Entschuldigung, tippen auswendig, danke fürs Reparieren. –