7
votes

GRUNTJS: Remplacez les modèles lors de la copie d'un fichier

J'écris un script gruntjs qui devrait

  • Concaténate + Remplacer Modèle de certains fichiers JS dans le répertoire cible (Contrib-Concat) LI>
  • Copies + Remplacer le modèle de certains autres fichiers (contribut-copie) LI>
  • emballer les fichiers dans un fichier zip li> ul>

    contribat a une option booléenne processus fort> pour remplacer les modèles (comme code>) lors du traitement des fichiers. P>

    contribut-copie a également une option ProcessContent strong>, mais je ne sais pas comment déclencher le traitement de modèle avec cette option. p>

    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']);
    };
    


0 commentaires

3 Réponses :


3
votes

ProcessContent est un type de fonction. Voir la documentation: https://github.com/gruntjs/grunt-contrib-copy#processcontent < / a> xxx


0 commentaires

4
votes

Essayez quelque chose comme ça. XXX


2 commentaires

Merci. Est-il possible d'appeler des fonctions de remplacement de modèle «standard» de ProcessContent?


Merci pour l'exemple, @a. Cela m'a monté et couru en moins d'une minute.



8
votes

1 commentaires

Depuis la version 0.5.0 de Grunt-contribut-copy, l'option ProcessContent est renommée sur processus .