Ich schreibe ein Gruntjs Skript, das sollteGruntjs: Vorlagen ersetzen, wenn das Kopieren einer Datei
- concatenate + Vorlage einiger JS-Dateien in das Zielverzeichnis (contrib-concat)
- Kopien + ersetzen Vorlage einiger ersetzen andere Dateien (contrib-Kopie)
- Paket der Dateien in eine Zip-Datei
contrib-concat hat einen boolean Option Prozess zu ersetzen Vorlagen (wie <% pkg.version %>
) bei der Verarbeitung von Dateien.
contrib-copy hat auch eine Option processContent, aber ich weiß nicht, wie Vorlage Verarbeitung mit dieser Option auslösen.
module.exports = function(grunt) {
grunt.initConfig({
meta: {
banner: ' \
/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n \
* <%= pkg.homepage %>\n \
*/\n\n',
build_date: '<%= grunt.template.today("yyyy-mm-dd") %>',
build_num: process.env.BUILD_NUMBER || 0, // Jenkins build number if available
version_string: '<%= pkg.version %>-<%= meta.build_num %>',
dist_dir: 'dist/<%= pkg.version %>'
},
pkg: grunt.file.readJSON('package.json'),
concat: {
options: {
stripBanners: {
block: true
},
process: true,
separator: '\n /* ----- */ \n',
banner: '<%= meta.banner %>'
},
dist: {
src: [
'src/ViewUtility.js',
'src/ViewClass.js',
'src/ViewClass.js',
'src/MarksClass.js',
'src/ViewVersion.js'],
dest: 'build/View.js'
}
},
uglify: {
options: {
mangle: {
except: ['jQuery', 'Hammer']
},
banner: '<%= meta.banner %>'
},
dist: {
src: '<%= pkg.main %>',
dest: 'build/View.min.js'
}
},
copy: {
options: {
processContent: true
},
dist: {
files: [
{expand: true, cwd: 'build/', src: ['**'], dest: '<%= meta.dist_dir %>/view/'},
{expand: true, cwd: 'src/', src: ['View-tp.js'], dest: '<%= meta.dist_dir %>/view/'},
{expand: true, cwd: 'src/', src: ['plugin.json'], dest: '<%= meta.dist_dir %>/'}
]
}
},
compress: {
dist: {
options: {
archive: 'view_' + '<%= meta.version_string %>_<%= meta.build_date %>' + '.zip'
},
expand: true,
cwd: 'dist/',
src: ['**/*']
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('default', ['concat', 'uglify', 'copy', 'compress']);
};
processContent oben funktioniert nicht. Bitte schlagen Sie Lösungen vor.
Seit Version 0.5.0 von grunt-contrib-copy wird die Option 'processContent' in' process' umbenannt. – TLindig