Dies ist ein alternativer Ansatz (neben @jalonen ‚s-Lösung), die für Sie interessant zu können, falls Sie requirejs verwenden, um Ihr Projekt modularisieren, dann können Sie die requirejs optimizer benutzen, um Ihre Module minify.
Zunächst einmal müssen Sie grunt-contrib-requirejs zu einem Projekt hinzuzufügen:
npm install grunt-contrib-requirejs --save-dev
Grunt Konfiguration:
requirejs: {
production:{
options:{
// don't include libaries when concatenating/minifying
paths:{
angular:'empty:',
jquery:'empty:'
},
baseUrl:'path/to/src/js',
dir:'path/to/target/js',
// keeps only the combined files
removeCombined:true,
modules:[
{name:'app', exclude: ['moduleA', 'moduleB']},
{name:'moduleA'},
{name:'moduleB'}
]
}
}
}
...
grunt.loadNpmTasks('grunt-contrib-copy');
Erläuterung:
Angenommen, Sie haben diese Abhängigkeit haben Baum (->
bedeutet ist abhängig von):
app -> moduleA -> moduleA1
-> moduleA2
app -> moduleB -> moduleB1
-> moduleB2
Nach minifying Sie drei Dateien haben:
app
(minimierte Version der App)
moduleA
(minimierte Version von moduleA
, moduleA1
und moduleA2
)
moduleB
(verkleinerte Version von moduleB
, moduleB1
und moduleB2
)
Perfekt, das ist genau das, was ich gesucht habe. Vielen Dank für die zusätzliche Reise bei der Registrierung einer standardmäßigen kombinierten Aufgabe! –