Make WordPress Core

Ticket #25159: 25159.3.patch

File 25159.3.patch, 4.6 KB (added by azaozz, 11 years ago)
  • Gruntfile.js

     
    1414                                cwd: BUILD_DIR,
    1515                                src: []
    1616                        },
     17                        tinymce: {
     18                                src: [
     19                                        '<%= concat.tinymce.dest %>',
     20                                        BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce-schema.min.js',
     21                                        BUILD_DIR + 'wp-includes/js/tinymce/mark_loaded.js'
     22                                ]
     23                        }
    1724                },
    1825                copy: {
    1926                        all: {
     
    6875                                        'wp-includes/js/plupload/handlers.js',
    6976                                        'wp-includes/js/plupload/wp-plupload.js',
    7077                                        'wp-includes/js/tinymce/plugins/wp*/js/*.js',
     78                                        'wp-includes/js/tinymce/wp-tinymce-schema.js',
    7179                                        // Exceptions
    7280                                        '!wp-admin/js/custom-header.js', // Why? We should minify this.
    7381                                        '!wp-admin/js/farbtastic.js',
     
    7583                                        '!wp-includes/js/backbone.min.js',
    7684                                        '!wp-includes/js/swfobject.js',
    7785                                        '!wp-includes/js/underscore.min.js',
    78                                         '!wp-includes/js/zxcvbn.min.js'
     86                                        '!wp-includes/js/zxcvbn.min.js',
     87                                        '!wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js' // Hard-coded in the static html file
    7988                                ]
    8089                        },
    8190                        tinymce: {
     
    8493                                dest: BUILD_DIR,
    8594                                src: [
    8695                                        'wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js',
    87                                         'wp-includes/js/tinymce/plugins/wp*/editor_plugin_src.js'
     96                                        'wp-includes/js/tinymce/plugins/wp*/editor_plugin_src.js',
     97                                        'wp-includes/js/tinymce/mark_loaded_src.js'
    8898                                ],
    8999                                // TinyMCE plugins use a nonstandard naming scheme: plugin files are named
    90100                                // `editor_plugin_src.js`, and are compressed into `editor_plugin.js`.
    91101                                rename: function(destBase, destPath) {
    92                                         destPath = destPath.replace('/editor_plugin_src.js', '/editor_plugin.js');
     102                                        destPath = destPath.replace(/_src.js$/, '.js');
    93103                                        return path.join(destBase || '', destPath);
    94104                                }
    95105                        }
    96106                },
     107                concat: {
     108                        tinymce: {
     109                                options: {
     110                                        separator: '\n',
     111                                        banner: '// Created: <%= grunt.template.today("UTC:yyyy-mm-dd HH:MM:ss Z") %>\n',
     112                                        process: function( src, filepath ) {
     113                                                return '// Source: ' + filepath.replace( BUILD_DIR, '' ) + '\n' + src;
     114                                        }
     115                                },
     116                                src: [
     117                                        BUILD_DIR + 'wp-includes/js/tinymce/tiny_mce.js',
     118                                        BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce-schema.min.js',
     119                                        BUILD_DIR + 'wp-includes/js/tinymce/themes/advanced/editor_template.js',
     120                                        BUILD_DIR + 'wp-includes/js/tinymce/plugins/*/editor_plugin.js',
     121                                        BUILD_DIR + 'wp-includes/js/tinymce/mark_loaded.js'
     122                                ],
     123                                dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js'
     124                        }
     125                },
     126                compress: {
     127                        tinymce: {
     128                                options: {
     129                                        mode: 'gzip',
     130                                        level: 9
     131                                },
     132                                src: '<%= concat.tinymce.dest %>',
     133                                dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js.gz'
     134                        }
     135                },
    97136                watch: {
    98137                        all: {
    99138                                files: [
     
    122161        grunt.loadNpmTasks('grunt-contrib-qunit');
    123162        grunt.loadNpmTasks('grunt-contrib-uglify');
    124163        grunt.loadNpmTasks('grunt-contrib-watch');
     164        grunt.loadNpmTasks('grunt-contrib-compress');
     165        grunt.loadNpmTasks('grunt-contrib-concat');
    125166
    126167        // Register tasks.
    127         grunt.registerTask('build', ['clean:all', 'copy:all', 'cssmin:core',
    128                 'uglify:core', 'uglify:tinymce']);
     168        grunt.registerTask('build', ['clean:all', 'copy:all', 'cssmin:core', 'uglify:core',
     169                'uglify:tinymce', 'concat:tinymce', 'compress:tinymce', 'clean:tinymce']);
    129170
    130171        // Testing task.
    131172        grunt.registerTask('test', ['qunit']);
     
    137178        //
    138179        // On `watch:all`, automatically updates the `copy:dynamic` and `clean:dynamic`
    139180        // configurations so that only the changed files are updated.
    140         grunt.event.on('watch', function(action, filepath, target) {
    141                 if (target != 'all') return;
     181        grunt.event.on('watch', function( action, filepath, target ) {
     182                if ( target != 'all' )
     183                        return;
    142184
    143                 var relativePath = path.relative(SOURCE_DIR, filepath);
    144                 var cleanSrc = (action == 'deleted') ? [relativePath] : [];
    145                 var copySrc = (action == 'deleted') ? [] : [relativePath];
     185                var relativePath = path.relative( SOURCE_DIR, filepath );
     186                var cleanSrc = ( action == 'deleted' ) ? [relativePath] : [];
     187                var copySrc = ( action == 'deleted' ) ? [] : [relativePath];
     188
    146189                grunt.config(['clean', 'dynamic', 'src'], cleanSrc);
    147190                grunt.config(['copy', 'dynamic', 'src'], copySrc);
    148191        });
  • package.json

     
    1515    "grunt-contrib-cssmin": "~0.6.1",
    1616    "grunt-contrib-qunit": "~0.2.2",
    1717    "grunt-contrib-uglify": "~0.2.2",
    18     "grunt-contrib-watch": "~0.5.1"
     18    "grunt-contrib-watch": "~0.5.1",
     19    "grunt-contrib-compress": "~0.5.2",
     20    "grunt-contrib-concat": "~0.3.0"
    1921  }
    2022}