Make WordPress Core

Ticket #47749: 47749.1.diff

File 47749.1.diff, 30.9 KB (added by azaozz, 5 years ago)
  • Gruntfile.js

     
    33/* globals Set */
    44var webpackConfig = require( './webpack.config' );
    55
    6 module.exports = function(grunt) {
    7         var path = require('path'),
     6module.exports = function( grunt ) {
     7        var path = require( 'path' ),
    88                fs = require( 'fs' ),
    99                spawn = require( 'child_process' ).spawnSync,
    1010                SOURCE_DIR = 'src/',
     
    4141        }
    4242
    4343        // Load tasks.
    44         require('matchdep').filterDev(['grunt-*', '!grunt-legacy-util']).forEach( grunt.loadNpmTasks );
     44        require( 'matchdep' ).filterDev( [ 'grunt-*', '!grunt-legacy-util' ] ).forEach( grunt.loadNpmTasks );
    4545        // Load legacy utils
    46         grunt.util = require('grunt-legacy-util');
     46        grunt.util = require( 'grunt-legacy-util' );
    4747
    4848        // Project configuration.
    49         grunt.initConfig({
     49        grunt.initConfig( {
    5050                postcss: {
    5151                        options: {
    5252                                processors: [
    53                                         autoprefixer({
     53                                        autoprefixer( {
    5454                                                browsers: [
    5555                                                        '> 1%',
    5656                                                        'ie >= 11',
     
    6464                                                        'last 2 Opera versions'
    6565                                                ],
    6666                                                cascade: false
    67                                         })
     67                                        } )
    6868                                ]
    6969                        },
    7070                        core: {
     
    100100                        }
    101101                },
    102102                clean: {
    103                         plugins: [BUILD_DIR + 'wp-content/plugins'],
    104                         themes: [BUILD_DIR + 'wp-content/themes'],
     103                        plugins: [ BUILD_DIR + 'wp-content/plugins' ],
     104                        themes: [ BUILD_DIR + 'wp-content/themes' ],
    105105                        files: buildFiles.map( function( file ) {
    106106                                return BUILD_DIR + file;
    107                         }),
     107                        } ),
     108
     109                        // Clean inline build files from /src.
     110                        // The files in /build are cleaned by `clean:files` above.
    108111                        css: [
    109                                 WORKING_DIR + 'wp-admin/css/*.min.css',
    110                                 WORKING_DIR + 'wp-admin/css/*rtl*',
    111                                 WORKING_DIR + 'wp-includes/css/*.min.css',
    112                                 WORKING_DIR + 'wp-includes/css/*rtl*',
    113                                 WORKING_DIR + 'wp-admin/css/colors/**/*.css'
     112                                SOURCE_DIR + 'wp-admin/css/*.min.css',
     113                                SOURCE_DIR + 'wp-admin/css/*rtl*',
     114                                SOURCE_DIR + 'wp-includes/css/*.min.css',
     115                                SOURCE_DIR + 'wp-includes/css/*rtl*',
     116                                SOURCE_DIR + 'wp-admin/css/colors/**/*.css'
    114117                        ],
    115118                        js: [
    116                                 WORKING_DIR + 'wp-admin/js/',
    117                                 WORKING_DIR + 'wp-includes/js/'
     119                                SOURCE_DIR + 'wp-admin/js/',
     120                                SOURCE_DIR + 'wp-includes/js/',
     121
     122                                // Also delete `css/dist` as it is created by Webpack at the same time as `js/dist`,
     123                                // and `clean:css` may run after and delete it.
     124                                SOURCE_DIR + 'wp-includes/css/dist'
    118125                        ],
    119126                        dynamic: {
    120127                                dot: true,
     
    122129                                cwd: WORKING_DIR,
    123130                                src: []
    124131                        },
    125                         qunit: ['tests/qunit/compiled.html']
     132                        qunit: [ 'tests/qunit/compiled.html' ]
    126133                },
    127134                file_append: {
    128135                        default_options: {
     
    157164                                                dest: BUILD_DIR
    158165                                        },
    159166                                        {
    160                                                 [BUILD_DIR + 'index.php']: ['src/_index.php'],
    161                                                 [BUILD_DIR + 'wp-admin/index.php']: ['src/wp-admin/_index.php']
     167                                                [ BUILD_DIR + 'index.php' ]: [ 'src/_index.php' ],
     168                                                [ BUILD_DIR + 'wp-admin/index.php' ]: [ 'src/wp-admin/_index.php' ]
    162169                                        }
    163170                                ]
    164171                        },
     
    360367
    361368                                                        /* jshint quotmark: true */
    362369                                                        return "$wp_version = '" + version + "';";
    363                                                 });
     370                                                } );
    364371                                        }
    365372                                },
    366373                                src: SOURCE_DIR + 'wp-includes/version.php',
     
    395402                                cwd: SOURCE_DIR,
    396403                                dest: WORKING_DIR,
    397404                                ext: '.css',
    398                                 src: ['wp-admin/css/colors/*/colors.scss'],
     405                                src: [ 'wp-admin/css/colors/*/colors.scss' ],
    399406                                options: {
    400407                                        implementation: nodesass,
    401408                                        outputStyle: 'expanded'
     
    533540                        }
    534541                },
    535542                jshint: {
    536                         options: grunt.file.readJSON('.jshintrc'),
     543                        options: grunt.file.readJSON( '.jshintrc' ),
    537544                        grunt: {
    538                                 src: ['Gruntfile.js']
     545                                src: [ 'Gruntfile.js' ]
    539546                        },
    540547                        tests: {
    541548                                src: [
     
    543550                                        '!tests/qunit/vendor/*',
    544551                                        '!tests/qunit/editor/**'
    545552                                ],
    546                                 options: grunt.file.readJSON('tests/qunit/.jshintrc')
     553                                options: grunt.file.readJSON( 'tests/qunit/.jshintrc' )
    547554                        },
    548555                        themes: {
    549556                                expand: true,
     
    634641                                }
    635642                        }
    636643                },
    637                 jsdoc : {
    638                         dist : {
     644                jsdoc: {
     645                        dist: {
    639646                                dest: 'jsdoc',
    640647                                options: {
    641                                         configure : 'jsdoc.conf.json'
     648                                        configure: 'jsdoc.conf.json'
    642649                                }
    643650                        }
    644651                },
     
    651658                phpunit: {
    652659                        'default': {
    653660                                cmd: 'phpunit',
    654                                 args: ['--verbose', '-c', 'phpunit.xml.dist']
     661                                args: [ '--verbose', '-c', 'phpunit.xml.dist' ]
    655662                        },
    656663                        ajax: {
    657664                                cmd: 'phpunit',
    658                                 args: ['--verbose', '-c', 'phpunit.xml.dist', '--group', 'ajax']
     665                                args: [ '--verbose', '-c', 'phpunit.xml.dist', '--group', 'ajax' ]
    659666                        },
    660667                        multisite: {
    661668                                cmd: 'phpunit',
    662                                 args: ['--verbose', '-c', 'tests/phpunit/multisite.xml']
     669                                args: [ '--verbose', '-c', 'tests/phpunit/multisite.xml' ]
    663670                        },
    664671                        'ms-files': {
    665672                                cmd: 'phpunit',
    666                                 args: ['--verbose', '-c', 'tests/phpunit/multisite.xml', '--group', 'ms-files']
     673                                args: [ '--verbose', '-c', 'tests/phpunit/multisite.xml', '--group', 'ms-files' ]
    667674                        },
    668675                        'external-http': {
    669676                                cmd: 'phpunit',
    670                                 args: ['--verbose', '-c', 'phpunit.xml.dist', '--group', 'external-http']
     677                                args: [ '--verbose', '-c', 'phpunit.xml.dist', '--group', 'external-http' ]
    671678                        },
    672679                        'restapi-jsclient': {
    673680                                cmd: 'phpunit',
    674                                 args: ['--verbose', '-c', 'phpunit.xml.dist', '--group', 'restapi-jsclient']
     681                                args: [ '--verbose', '-c', 'phpunit.xml.dist', '--group', 'restapi-jsclient' ]
    675682                        }
    676683                },
    677684                uglify: {
     
    712719                                cwd: WORKING_DIR,
    713720                                dest: WORKING_DIR,
    714721                                ext: '.min.js',
    715                                 src: ['wp-includes/js/wp-embed.js']
     722                                src: [ 'wp-includes/js/wp-embed.js' ]
    716723                        },
    717724                        jqueryui: {
    718725                                options: {
     
    723730                                cwd: 'node_modules/jquery-ui/ui/',
    724731                                dest: WORKING_DIR + 'wp-includes/js/jquery/ui/',
    725732                                ext: '.min.js',
    726                                 src: ['*.js']
     733                                src: [ '*.js' ]
    727734                        },
    728735                        imgareaselect: {
    729736                                src: WORKING_DIR + 'wp-includes/js/imgareaselect/jquery.imgareaselect.js',
     
    864871                                        'src/wp-includes/js/wpdialog.js': 'src/js/_enqueues/lib/dialog.js',
    865872                                        'src/wp-includes/js/wplink.js': 'src/js/_enqueues/lib/link.js',
    866873                                        'src/wp-includes/js/zxcvbn-async.js': 'src/js/_enqueues/lib/zxcvbn-async.js',
    867                                         'src/wp-includes/js/media/controllers/audio-details.js' : 'src/js/media/controllers/audio-details.js',
    868                                         'src/wp-includes/js/media/controllers/collection-add.js' : 'src/js/media/controllers/collection-add.js',
    869                                         'src/wp-includes/js/media/controllers/collection-edit.js' : 'src/js/media/controllers/collection-edit.js',
    870                                         'src/wp-includes/js/media/controllers/cropper.js' : 'src/js/media/controllers/cropper.js',
    871                                         'src/wp-includes/js/media/controllers/customize-image-cropper.js' : 'src/js/media/controllers/customize-image-cropper.js',
    872                                         'src/wp-includes/js/media/controllers/edit-attachment-metadata.js' : 'src/js/media/controllers/edit-attachment-metadata.js',
    873                                         'src/wp-includes/js/media/controllers/edit-image.js' : 'src/js/media/controllers/edit-image.js',
    874                                         'src/wp-includes/js/media/controllers/embed.js' : 'src/js/media/controllers/embed.js',
    875                                         'src/wp-includes/js/media/controllers/featured-image.js' : 'src/js/media/controllers/featured-image.js',
    876                                         'src/wp-includes/js/media/controllers/gallery-add.js' : 'src/js/media/controllers/gallery-add.js',
    877                                         'src/wp-includes/js/media/controllers/gallery-edit.js' : 'src/js/media/controllers/gallery-edit.js',
    878                                         'src/wp-includes/js/media/controllers/image-details.js' : 'src/js/media/controllers/image-details.js',
    879                                         'src/wp-includes/js/media/controllers/library.js' : 'src/js/media/controllers/library.js',
    880                                         'src/wp-includes/js/media/controllers/media-library.js' : 'src/js/media/controllers/media-library.js',
    881                                         'src/wp-includes/js/media/controllers/region.js' : 'src/js/media/controllers/region.js',
    882                                         'src/wp-includes/js/media/controllers/replace-image.js' : 'src/js/media/controllers/replace-image.js',
    883                                         'src/wp-includes/js/media/controllers/site-icon-cropper.js' : 'src/js/media/controllers/site-icon-cropper.js',
    884                                         'src/wp-includes/js/media/controllers/state-machine.js' : 'src/js/media/controllers/state-machine.js',
    885                                         'src/wp-includes/js/media/controllers/state.js' : 'src/js/media/controllers/state.js',
    886                                         'src/wp-includes/js/media/controllers/video-details.js' : 'src/js/media/controllers/video-details.js',
    887                                         'src/wp-includes/js/media/models/attachment.js' : 'src/js/media/models/attachment.js',
    888                                         'src/wp-includes/js/media/models/attachments.js' : 'src/js/media/models/attachments.js',
    889                                         'src/wp-includes/js/media/models/post-image.js' : 'src/js/media/models/post-image.js',
    890                                         'src/wp-includes/js/media/models/post-media.js' : 'src/js/media/models/post-media.js',
    891                                         'src/wp-includes/js/media/models/query.js' : 'src/js/media/models/query.js',
    892                                         'src/wp-includes/js/media/models/selection.js' : 'src/js/media/models/selection.js',
    893                                         'src/wp-includes/js/media/routers/manage.js' : 'src/js/media/routers/manage.js',
    894                                         'src/wp-includes/js/media/utils/selection-sync.js' : 'src/js/media/utils/selection-sync.js',
    895                                         'src/wp-includes/js/media/views/attachment-compat.js' : 'src/js/media/views/attachment-compat.js',
    896                                         'src/wp-includes/js/media/views/attachment-filters.js' : 'src/js/media/views/attachment-filters.js',
    897                                         'src/wp-includes/js/media/views/attachment-filters/all.js' : 'src/js/media/views/attachment-filters/all.js',
    898                                         'src/wp-includes/js/media/views/attachment-filters/date.js' : 'src/js/media/views/attachment-filters/date.js',
    899                                         'src/wp-includes/js/media/views/attachment-filters/uploaded.js' : 'src/js/media/views/attachment-filters/uploaded.js',
    900                                         'src/wp-includes/js/media/views/attachment.js' : 'src/js/media/views/attachment.js',
    901                                         'src/wp-includes/js/media/views/attachment/details-two-column.js' : 'src/js/media/views/details-two-column.js',
    902                                         'src/wp-includes/js/media/views/attachment/details.js' : 'src/js/media/views/details.js',
    903                                         'src/wp-includes/js/media/views/attachment/edit-library.js' : 'src/js/media/views/edit-library.js',
    904                                         'src/wp-includes/js/media/views/attachment/edit-selection.js' : 'src/js/media/views/edit-selection.js',
    905                                         'src/wp-includes/js/media/views/attachment/library.js' : 'src/js/media/views/library.js',
    906                                         'src/wp-includes/js/media/views/attachment/selection.js' : 'src/js/media/views/selection.js',
    907                                         'src/wp-includes/js/media/views/attachment/attachments.js' : 'src/js/media/views/attachments.js',
    908                                         'src/wp-includes/js/media/views/attachments/browser.js' : 'src/js/media/views/attachments/browser.js',
    909                                         'src/wp-includes/js/media/views/attachments/selection.js' : 'src/js/media/views/attachments/selection.js',
    910                                         'src/wp-includes/js/media/views/attachments/audio-details.js' : 'src/js/media/views/attachments/audio-details.js',
    911                                         'src/wp-includes/js/media/views/attachments/button-group.js' : 'src/js/media/views/attachments/button-group.js',
    912                                         'src/wp-includes/js/media/views/attachments/button.js' : 'src/js/media/views/attachments/button.js',
    913                                         'src/wp-includes/js/media/views/button/delete-selected-permanently.js' : 'src/js/media/views/button/delete-selected-permanently.js',
    914                                         'src/wp-includes/js/media/views/button/delete-selected.js' : 'src/js/media/views/button/delete-selected.js',
    915                                         'src/wp-includes/js/media/views/button/select-mode-toggle.js' : 'src/js/media/views/button/select-mode-toggle.js',
    916                                         'src/wp-includes/js/media/views/cropper.js' : 'src/js/media/views/cropper.js',
    917                                         'src/wp-includes/js/media/views/edit-image-details.js' : 'src/js/media/views/edit-image-details.js',
    918                                         'src/wp-includes/js/media/views/edit-image.js' : 'src/js/media/views/edit-image.js',
    919                                         'src/wp-includes/js/media/views/embed.js' : 'src/js/media/views/embed.js',
    920                                         'src/wp-includes/js/media/views/embed/image.js' : 'src/js/media/views/embed/image.js',
    921                                         'src/wp-includes/js/media/views/embed/link.js' : 'src/js/media/views/embed/link.js',
    922                                         'src/wp-includes/js/media/views/embed/url.js' : 'src/js/media/views/embed/url.js',
    923                                         'src/wp-includes/js/media/views/focus-manager.js' : 'src/js/media/views/focus-manager.js',
    924                                         'src/wp-includes/js/media/views/frame.js' : 'src/js/media/views/frame.js',
    925                                         'src/wp-includes/js/media/views/frame/audio-details.js' : 'src/js/media/views/frame/audio-details.js',
    926                                         'src/wp-includes/js/media/views/frame/edit-attachments.js' : 'src/js/media/views/frame/edit-attachments.js',
    927                                         'src/wp-includes/js/media/views/frame/image-details.js' : 'src/js/media/views/frame/image-details.js',
    928                                         'src/wp-includes/js/media/views/frame/manage.js' : 'src/js/media/views/frame/manage.js',
    929                                         'src/wp-includes/js/media/views/frame/media-details.js' : 'src/js/media/views/frame/media-details.js',
    930                                         'src/wp-includes/js/media/views/frame/post.js' : 'src/js/media/views/frame/post.js',
    931                                         'src/wp-includes/js/media/views/frame/select.js' : 'src/js/media/views/frame/select.js',
    932                                         'src/wp-includes/js/media/views/frame/video-details.js' : 'src/js/media/views/frame/video-details.js',
    933                                         'src/wp-includes/js/media/views/iframe.js' : 'src/js/media/views/iframe.js',
    934                                         'src/wp-includes/js/media/views/image-details.js' : 'src/js/media/views/image-details.js',
    935                                         'src/wp-includes/js/media/views/label.js' : 'src/js/media/views/label.js',
    936                                         'src/wp-includes/js/media/views/media-details.js' : 'src/js/media/views/media-details.js',
    937                                         'src/wp-includes/js/media/views/media-frame.js' : 'src/js/media/views/media-frame.js',
    938                                         'src/wp-includes/js/media/views/menu-item.js' : 'src/js/media/views/menu-item.js',
    939                                         'src/wp-includes/js/media/views/menu.js' : 'src/js/media/views/menu.js',
    940                                         'src/wp-includes/js/media/views/modal.js' : 'src/js/media/views/modal.js',
    941                                         'src/wp-includes/js/media/views/priority-list.js' : 'src/js/media/views/priority-list.js',
    942                                         'src/wp-includes/js/media/views/router-item.js' : 'src/js/media/views/router-item.js',
    943                                         'src/wp-includes/js/media/views/router.js' : 'src/js/media/views/router.js',
    944                                         'src/wp-includes/js/media/views/search.js' : 'src/js/media/views/search.js',
    945                                         'src/wp-includes/js/media/views/selection.js' : 'src/js/media/views/selection.js',
    946                                         'src/wp-includes/js/media/views/settings.js' : 'src/js/media/views/settings.js',
    947                                         'src/wp-includes/js/media/views/settings/attachment-display.js' : 'src/js/media/views/settings/attachment-display.js',
    948                                         'src/wp-includes/js/media/views/settings/gallery.js' : 'src/js/media/views/settings/gallery.js',
    949                                         'src/wp-includes/js/media/views/settings/playlist.js' : 'src/js/media/views/settings/playlist.js',
    950                                         'src/wp-includes/js/media/views/sidebar.js' : 'src/js/media/views/sidebar.js',
    951                                         'src/wp-includes/js/media/views/site-icon-cropper.js' : 'src/js/media/views/site-icon-cropper.js',
    952                                         'src/wp-includes/js/media/views/site-icon-preview.js' : 'src/js/media/views/site-icon-preview.js',
    953                                         'src/wp-includes/js/media/views/spinner.js' : 'src/js/media/views/spinner.js',
    954                                         'src/wp-includes/js/media/views/toolbar.js' : 'src/js/media/views/toolbar.js',
    955                                         'src/wp-includes/js/media/views/toolbar/embed.js' : 'src/js/media/views/toolbar/embed.js',
    956                                         'src/wp-includes/js/media/views/toolbar/select.js' : 'src/js/media/views/toolbar/select.js',
    957                                         'src/wp-includes/js/media/views/uploader/editor.js' : 'src/js/media/views/uploader/editor.js',
    958                                         'src/wp-includes/js/media/views/uploader/inline.js' : 'src/js/media/views/uploader/inline.js',
    959                                         'src/wp-includes/js/media/views/uploader/status-error.js' : 'src/js/media/views/uploader/status-error.js',
    960                                         'src/wp-includes/js/media/views/uploader/status.js' : 'src/js/media/views/uploader/status.js',
    961                                         'src/wp-includes/js/media/views/uploader/window.js' : 'src/js/media/views/uploader/window.js',
    962                                         'src/wp-includes/js/media/views/video-details.js' : 'src/js/media/views/video-details.js',
    963                                         'src/wp-includes/js/media/views/view.js' : 'src/js/media/views/view.js'
     874                                        'src/wp-includes/js/media/controllers/audio-details.js': 'src/js/media/controllers/audio-details.js',
     875                                        'src/wp-includes/js/media/controllers/collection-add.js': 'src/js/media/controllers/collection-add.js',
     876                                        'src/wp-includes/js/media/controllers/collection-edit.js': 'src/js/media/controllers/collection-edit.js',
     877                                        'src/wp-includes/js/media/controllers/cropper.js': 'src/js/media/controllers/cropper.js',
     878                                        'src/wp-includes/js/media/controllers/customize-image-cropper.js': 'src/js/media/controllers/customize-image-cropper.js',
     879                                        'src/wp-includes/js/media/controllers/edit-attachment-metadata.js': 'src/js/media/controllers/edit-attachment-metadata.js',
     880                                        'src/wp-includes/js/media/controllers/edit-image.js': 'src/js/media/controllers/edit-image.js',
     881                                        'src/wp-includes/js/media/controllers/embed.js': 'src/js/media/controllers/embed.js',
     882                                        'src/wp-includes/js/media/controllers/featured-image.js': 'src/js/media/controllers/featured-image.js',
     883                                        'src/wp-includes/js/media/controllers/gallery-add.js': 'src/js/media/controllers/gallery-add.js',
     884                                        'src/wp-includes/js/media/controllers/gallery-edit.js': 'src/js/media/controllers/gallery-edit.js',
     885                                        'src/wp-includes/js/media/controllers/image-details.js': 'src/js/media/controllers/image-details.js',
     886                                        'src/wp-includes/js/media/controllers/library.js': 'src/js/media/controllers/library.js',
     887                                        'src/wp-includes/js/media/controllers/media-library.js': 'src/js/media/controllers/media-library.js',
     888                                        'src/wp-includes/js/media/controllers/region.js': 'src/js/media/controllers/region.js',
     889                                        'src/wp-includes/js/media/controllers/replace-image.js': 'src/js/media/controllers/replace-image.js',
     890                                        'src/wp-includes/js/media/controllers/site-icon-cropper.js': 'src/js/media/controllers/site-icon-cropper.js',
     891                                        'src/wp-includes/js/media/controllers/state-machine.js': 'src/js/media/controllers/state-machine.js',
     892                                        'src/wp-includes/js/media/controllers/state.js': 'src/js/media/controllers/state.js',
     893                                        'src/wp-includes/js/media/controllers/video-details.js': 'src/js/media/controllers/video-details.js',
     894                                        'src/wp-includes/js/media/models/attachment.js': 'src/js/media/models/attachment.js',
     895                                        'src/wp-includes/js/media/models/attachments.js': 'src/js/media/models/attachments.js',
     896                                        'src/wp-includes/js/media/models/post-image.js': 'src/js/media/models/post-image.js',
     897                                        'src/wp-includes/js/media/models/post-media.js': 'src/js/media/models/post-media.js',
     898                                        'src/wp-includes/js/media/models/query.js': 'src/js/media/models/query.js',
     899                                        'src/wp-includes/js/media/models/selection.js': 'src/js/media/models/selection.js',
     900                                        'src/wp-includes/js/media/routers/manage.js': 'src/js/media/routers/manage.js',
     901                                        'src/wp-includes/js/media/utils/selection-sync.js': 'src/js/media/utils/selection-sync.js',
     902                                        'src/wp-includes/js/media/views/attachment-compat.js': 'src/js/media/views/attachment-compat.js',
     903                                        'src/wp-includes/js/media/views/attachment-filters.js': 'src/js/media/views/attachment-filters.js',
     904                                        'src/wp-includes/js/media/views/attachment-filters/all.js': 'src/js/media/views/attachment-filters/all.js',
     905                                        'src/wp-includes/js/media/views/attachment-filters/date.js': 'src/js/media/views/attachment-filters/date.js',
     906                                        'src/wp-includes/js/media/views/attachment-filters/uploaded.js': 'src/js/media/views/attachment-filters/uploaded.js',
     907                                        'src/wp-includes/js/media/views/attachment.js': 'src/js/media/views/attachment.js',
     908                                        'src/wp-includes/js/media/views/attachment/details-two-column.js': 'src/js/media/views/details-two-column.js',
     909                                        'src/wp-includes/js/media/views/attachment/details.js': 'src/js/media/views/details.js',
     910                                        'src/wp-includes/js/media/views/attachment/edit-library.js': 'src/js/media/views/edit-library.js',
     911                                        'src/wp-includes/js/media/views/attachment/edit-selection.js': 'src/js/media/views/edit-selection.js',
     912                                        'src/wp-includes/js/media/views/attachment/library.js': 'src/js/media/views/library.js',
     913                                        'src/wp-includes/js/media/views/attachment/selection.js': 'src/js/media/views/selection.js',
     914                                        'src/wp-includes/js/media/views/attachment/attachments.js': 'src/js/media/views/attachments.js',
     915                                        'src/wp-includes/js/media/views/attachments/browser.js': 'src/js/media/views/attachments/browser.js',
     916                                        'src/wp-includes/js/media/views/attachments/selection.js': 'src/js/media/views/attachments/selection.js',
     917                                        'src/wp-includes/js/media/views/attachments/audio-details.js': 'src/js/media/views/attachments/audio-details.js',
     918                                        'src/wp-includes/js/media/views/attachments/button-group.js': 'src/js/media/views/attachments/button-group.js',
     919                                        'src/wp-includes/js/media/views/attachments/button.js': 'src/js/media/views/attachments/button.js',
     920                                        'src/wp-includes/js/media/views/button/delete-selected-permanently.js': 'src/js/media/views/button/delete-selected-permanently.js',
     921                                        'src/wp-includes/js/media/views/button/delete-selected.js': 'src/js/media/views/button/delete-selected.js',
     922                                        'src/wp-includes/js/media/views/button/select-mode-toggle.js': 'src/js/media/views/button/select-mode-toggle.js',
     923                                        'src/wp-includes/js/media/views/cropper.js': 'src/js/media/views/cropper.js',
     924                                        'src/wp-includes/js/media/views/edit-image-details.js': 'src/js/media/views/edit-image-details.js',
     925                                        'src/wp-includes/js/media/views/edit-image.js': 'src/js/media/views/edit-image.js',
     926                                        'src/wp-includes/js/media/views/embed.js': 'src/js/media/views/embed.js',
     927                                        'src/wp-includes/js/media/views/embed/image.js': 'src/js/media/views/embed/image.js',
     928                                        'src/wp-includes/js/media/views/embed/link.js': 'src/js/media/views/embed/link.js',
     929                                        'src/wp-includes/js/media/views/embed/url.js': 'src/js/media/views/embed/url.js',
     930                                        'src/wp-includes/js/media/views/focus-manager.js': 'src/js/media/views/focus-manager.js',
     931                                        'src/wp-includes/js/media/views/frame.js': 'src/js/media/views/frame.js',
     932                                        'src/wp-includes/js/media/views/frame/audio-details.js': 'src/js/media/views/frame/audio-details.js',
     933                                        'src/wp-includes/js/media/views/frame/edit-attachments.js': 'src/js/media/views/frame/edit-attachments.js',
     934                                        'src/wp-includes/js/media/views/frame/image-details.js': 'src/js/media/views/frame/image-details.js',
     935                                        'src/wp-includes/js/media/views/frame/manage.js': 'src/js/media/views/frame/manage.js',
     936                                        'src/wp-includes/js/media/views/frame/media-details.js': 'src/js/media/views/frame/media-details.js',
     937                                        'src/wp-includes/js/media/views/frame/post.js': 'src/js/media/views/frame/post.js',
     938                                        'src/wp-includes/js/media/views/frame/select.js': 'src/js/media/views/frame/select.js',
     939                                        'src/wp-includes/js/media/views/frame/video-details.js': 'src/js/media/views/frame/video-details.js',
     940                                        'src/wp-includes/js/media/views/iframe.js': 'src/js/media/views/iframe.js',
     941                                        'src/wp-includes/js/media/views/image-details.js': 'src/js/media/views/image-details.js',
     942                                        'src/wp-includes/js/media/views/label.js': 'src/js/media/views/label.js',
     943                                        'src/wp-includes/js/media/views/media-details.js': 'src/js/media/views/media-details.js',
     944                                        'src/wp-includes/js/media/views/media-frame.js': 'src/js/media/views/media-frame.js',
     945                                        'src/wp-includes/js/media/views/menu-item.js': 'src/js/media/views/menu-item.js',
     946                                        'src/wp-includes/js/media/views/menu.js': 'src/js/media/views/menu.js',
     947                                        'src/wp-includes/js/media/views/modal.js': 'src/js/media/views/modal.js',
     948                                        'src/wp-includes/js/media/views/priority-list.js': 'src/js/media/views/priority-list.js',
     949                                        'src/wp-includes/js/media/views/router-item.js': 'src/js/media/views/router-item.js',
     950                                        'src/wp-includes/js/media/views/router.js': 'src/js/media/views/router.js',
     951                                        'src/wp-includes/js/media/views/search.js': 'src/js/media/views/search.js',
     952                                        'src/wp-includes/js/media/views/selection.js': 'src/js/media/views/selection.js',
     953                                        'src/wp-includes/js/media/views/settings.js': 'src/js/media/views/settings.js',
     954                                        'src/wp-includes/js/media/views/settings/attachment-display.js': 'src/js/media/views/settings/attachment-display.js',
     955                                        'src/wp-includes/js/media/views/settings/gallery.js': 'src/js/media/views/settings/gallery.js',
     956                                        'src/wp-includes/js/media/views/settings/playlist.js': 'src/js/media/views/settings/playlist.js',
     957                                        'src/wp-includes/js/media/views/sidebar.js': 'src/js/media/views/sidebar.js',
     958                                        'src/wp-includes/js/media/views/site-icon-cropper.js': 'src/js/media/views/site-icon-cropper.js',
     959                                        'src/wp-includes/js/media/views/site-icon-preview.js': 'src/js/media/views/site-icon-preview.js',
     960                                        'src/wp-includes/js/media/views/spinner.js': 'src/js/media/views/spinner.js',
     961                                        'src/wp-includes/js/media/views/toolbar.js': 'src/js/media/views/toolbar.js',
     962                                        'src/wp-includes/js/media/views/toolbar/embed.js': 'src/js/media/views/toolbar/embed.js',
     963                                        'src/wp-includes/js/media/views/toolbar/select.js': 'src/js/media/views/toolbar/select.js',
     964                                        'src/wp-includes/js/media/views/uploader/editor.js': 'src/js/media/views/uploader/editor.js',
     965                                        'src/wp-includes/js/media/views/uploader/inline.js': 'src/js/media/views/uploader/inline.js',
     966                                        'src/wp-includes/js/media/views/uploader/status-error.js': 'src/js/media/views/uploader/status-error.js',
     967                                        'src/wp-includes/js/media/views/uploader/status.js': 'src/js/media/views/uploader/status.js',
     968                                        'src/wp-includes/js/media/views/uploader/window.js': 'src/js/media/views/uploader/window.js',
     969                                        'src/wp-includes/js/media/views/video-details.js': 'src/js/media/views/video-details.js',
     970                                        'src/wp-includes/js/media/views/view.js': 'src/js/media/views/view.js'
    964971                                }
    965972                        }
    966973                },
     
    10921099                                        // Ignore version control directories.
    10931100                                        '!' + SOURCE_DIR + '**/.{svn,git}/**'
    10941101                                ],
    1095                                 tasks: ['clean:dynamic', 'copy:dynamic'],
     1102                                tasks: [ 'clean:dynamic', 'copy:dynamic' ],
    10961103                                options: {
    10971104                                        dot: true,
    10981105                                        spawn: false
     
    10991106                                }
    11001107                        },
    11011108                        'js-enqueues': {
    1102                                 files: [SOURCE_DIR + 'js/_enqueues/**/*.js'],
    1103                                 tasks: ['clean:dynamic', 'copy:dynamic-js', 'uglify:dynamic', 'jsvalidate:dynamic'],
     1109                                files: [ SOURCE_DIR + 'js/_enqueues/**/*.js' ],
     1110                                tasks: [ 'clean:dynamic', 'copy:dynamic-js', 'uglify:dynamic', 'jsvalidate:dynamic' ],
    11041111                                options: {
    11051112                                        dot: true,
    11061113                                        spawn: false
     
    11121119                                        '!' + SOURCE_DIR + 'js/_enqueues/**/*.js',
    11131120                                        'webpack-dev.config.js'
    11141121                                ],
    1115                                 tasks: ['clean:dynamic', 'webpack:dev', 'uglify:dynamic', 'jsvalidate:dynamic'],
     1122                                tasks: [ 'clean:dynamic', 'webpack:dev', 'uglify:dynamic', 'jsvalidate:dynamic' ],
    11161123                                options: {
    11171124                                        dot: true,
    11181125                                        spawn: false
     
    11251132                                ]
    11261133                        },
    11271134                        colors: {
    1128                                 files: [SOURCE_DIR + 'wp-admin/css/colors/**'],
    1129                                 tasks: ['sass:colors']
     1135                                files: [ SOURCE_DIR + 'wp-admin/css/colors/**' ],
     1136                                tasks: [ 'sass:colors' ]
    11301137                        },
    11311138                        rtl: {
    11321139                                files: [
     
    11331140                                        SOURCE_DIR + 'wp-admin/css/*.css',
    11341141                                        SOURCE_DIR + 'wp-includes/css/*.css'
    11351142                                ],
    1136                                 tasks: ['rtlcss:dynamic'],
     1143                                tasks: [ 'rtlcss:dynamic' ],
    11371144                                options: {
    11381145                                        spawn: false
    11391146                                }
     
    11431150                                        'tests/qunit/**',
    11441151                                        '!tests/qunit/editor/**'
    11451152                                ],
    1146                                 tasks: ['qunit']
     1153                                tasks: [ 'qunit' ]
    11471154                        }
    11481155                }
    1149         });
     1156        } );
    11501157
    11511158        // Allow builds to be minimal
    11521159        if( grunt.option( 'minimal-copy' ) ) {
     
    11631170        grunt.loadNpmTasks( 'grunt-webpack' );
    11641171
    11651172        // RTL task.
    1166         grunt.registerTask('rtl', ['rtlcss:core', 'rtlcss:colors']);
     1173        grunt.registerTask( 'rtl', [ 'rtlcss:core', 'rtlcss:colors' ] );
    11671174
    11681175        // Color schemes task.
    1169         grunt.registerTask('colors', ['sass:colors', 'postcss:colors']);
     1176        grunt.registerTask( 'colors', [ 'sass:colors', 'postcss:colors' ] );
    11701177
    11711178        // JSHint task.
    11721179        grunt.registerTask( 'jshint:corejs', [
     
    12511258                function runAllTasks() {
    12521259                        grunt.log.writeln( 'Cannot determine which files are modified as SVN and GIT are not available.' );
    12531260                        grunt.log.writeln( 'Running all tasks and all tests.' );
    1254                         grunt.task.run([
     1261                        grunt.task.run( [
    12551262                                'format:php',
    12561263                                'precommit:js',
    12571264                                'precommit:css',
     
    12581265                                'precommit:image',
    12591266                                'precommit:emoji',
    12601267                                'precommit:php'
    1261                         ]);
     1268                        ] );
    12621269
    12631270                        done();
    12641271                }
     
    13841391        grunt.registerTask( 'build', function() {
    13851392                if ( grunt.option( 'dev' ) ) {
    13861393                        grunt.task.run( [
     1394                                // Clean (potentially) old files from /build.
     1395                                'clean:files',
    13871396                                'build:js',
    13881397                                'build:css',
    13891398                        ] );
     
    13941403                                'build:css',
    13951404                                'includes:emoji',
    13961405                                'includes:embed',
     1406
     1407                                // Remove the leftover `/src/wp-includes/js` directory after building in /build has finished.
     1408                                'clean:js',
    13971409                        ] );
    13981410                }
    13991411        } );
     
    14071419        ] );
    14081420
    14091421        // Testing tasks.
    1410         grunt.registerMultiTask('phpunit', 'Runs PHPUnit tests, including the ajax, external-http, and multisite tests.', function() {
    1411                 grunt.util.spawn({
     1422        grunt.registerMultiTask( 'phpunit', 'Runs PHPUnit tests, including the ajax, external-http, and multisite tests.', function() {
     1423                grunt.util.spawn( {
    14121424                        cmd: this.data.cmd,
    14131425                        args: phpUnitWatchGroup ? this.data.args.concat( [ '--group', phpUnitWatchGroup ] ) : this.data.args,
    14141426                        opts: {stdio: 'inherit'}
    1415                 }, this.async());
    1416         });
     1427                }, this.async() );
     1428        } );
    14171429
    1418         grunt.registerTask('qunit:compiled', 'Runs QUnit tests on compiled as well as uncompiled scripts.',
    1419                 ['build', 'copy:qunit', 'qunit']);
     1430        grunt.registerTask(
     1431                'qunit:compiled',
     1432                'Runs QUnit tests on compiled as well as uncompiled scripts.',
     1433                [ 'build', 'copy:qunit', 'qunit' ]
     1434        );
    14201435
    1421         grunt.registerTask('test', 'Runs all QUnit and PHPUnit tasks.', ['qunit:compiled', 'phpunit']);
     1436        grunt.registerTask( 'test', 'Runs all QUnit and PHPUnit tasks.', [ 'qunit:compiled', 'phpunit' ] );
    14221437
    14231438        grunt.registerTask( 'format:php', 'Runs the code formatter on changed files.', function() {
    14241439                var done = this.async();
     
    14651480        } );
    14661481
    14671482        // Travis CI tasks.
    1468         grunt.registerTask('travis:js', 'Runs Javascript Travis CI tasks.', [ 'jshint:corejs', 'qunit:compiled' ]);
    1469         grunt.registerTask('travis:phpunit', 'Runs PHPUnit Travis CI tasks.', [ 'build', 'phpunit' ]);
    1470         grunt.registerTask('travis:phpcs', 'Runs PHP Coding Standards Travis CI tasks.', [ 'format:php:error', 'lint:php:travisErrors:error', 'lint:php:travisWarnings:error' ]);
     1483        grunt.registerTask( 'travis:js', 'Runs Javascript Travis CI tasks.', [ 'jshint:corejs', 'qunit:compiled' ] );
     1484        grunt.registerTask( 'travis:phpunit', 'Runs PHPUnit Travis CI tasks.', [ 'build', 'phpunit' ] );
     1485        grunt.registerTask(
     1486                'travis:phpcs',
     1487                'Runs PHP Coding Standards Travis CI tasks.',
     1488                [ 'format:php:error', 'lint:php:travisErrors:error', 'lint:php:travisWarnings:error' ]
     1489        );
    14711490
    14721491        // Patch task.
    1473         grunt.renameTask('patch_wordpress', 'patch');
     1492        grunt.renameTask( 'patch_wordpress', 'patch' );
    14741493
    14751494        // Add an alias `apply` of the `patch` task name.
    1476         grunt.registerTask('apply', 'patch');
     1495        grunt.registerTask( 'apply', 'patch' );
    14771496
    14781497        // Default task.
    1479         grunt.registerTask('default', ['build']);
     1498        grunt.registerTask( 'default', [ 'build' ] );
    14801499
    14811500        /*
    14821501         * Automatically updates the `:dynamic` configurations
     
    15071526                                for ( var i = 0; i < configs.length; i++ ) {
    15081527                                        var config = configs[ i ];
    15091528                                        var relative = path.relative( config.cwd, filepath );
    1510                                         var minimatch = require('minimatch');
     1529                                        var minimatch = require( 'minimatch' );
    15111530
    15121531                                        if ( minimatch.match( config.src, relative, {} ) ) {
    15131532                                                dest = config.dest + relative;
     
    15761595                                grunt.config( [ 'rtlcss', 'dynamic', 'src' ], src );
    15771596                        }
    15781597                }
    1579         });
     1598        } );
    15801599};