Make WordPress Core

Changeset 55484


Ignore:
Timestamp:
03/08/2023 01:01:45 AM (4 years ago)
Author:
azaozz
Message:

Build/Test Tools: Remove all previously built files when running clean:files.

Cleans old JS, CSS and Webpack files from /src so they are not automatically copied to /build when running grunt build. Fixes errors that may be caused by copying outdated files and/or directories to /build.

Props: desrosj, isabel_brison, SergeyBiryukov, ironprogrammer, mukesh27, robinwpdeveloper, razthee007, costdev, peterwilsoncc, azaozz.

Fixes: #47749.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Gruntfile.js

    r55186 r55484  
    3333                        '!wp-content/themes/twenty*/node_modules/**',
    3434                ],
     35
     36                // All built CSS files, in /src or /build.
     37                cssFiles = [
     38                        'wp-admin/css/*.min.css',
     39                        'wp-admin/css/*-rtl*.css',
     40                        'wp-includes/css/*.min.css',
     41                        'wp-includes/css/*-rtl*.css',
     42                        'wp-admin/css/colors/**/*.css',
     43                        'wp-includes/blocks/**/*.css',
     44                ],
     45
     46                // All built js files, in /src or /build.
     47                jsFiles = [
     48                        'wp-admin/js/',
     49                        'wp-includes/js/',
     50                        'wp-includes/blocks/**/*.js',
     51                        'wp-includes/blocks/**/*.js.map',
     52                ],
     53
     54                // All files built by Webpack, in /src or /build.
     55                webpackFiles = [
     56                        'wp-includes/assets/*',
     57                        'wp-includes/css/dist',
     58                        '!wp-includes/assets/script-loader-packages.min.php',
     59                ],
     60
     61                // Prepend `dir` to `file`, and keep `!` in place.
     62                setFilePath = function( dir, file ) {
     63                        if ( '!' === file.charAt( 0 ) ) {
     64                                return '!' + dir + file.substring( 1 );
     65                        }
     66
     67                        return dir + file;
     68                },
    3569                changedFiles = {
    3670                        php: []
    … …  
    108142                        plugins: [BUILD_DIR + 'wp-content/plugins'],
    109143                        themes: [BUILD_DIR + 'wp-content/themes'],
     144
     145                        // Clean the files from /build and the JS, CSS, and Webpack files from /src.
    110146                        files: buildFiles.concat( [
    111147                                '!wp-config.php',
    112148                        ] ).map( function( file ) {
    113                                 if ( '!' === file.charAt( 0 ) ) {
    114                                         return '!' + BUILD_DIR + file.substring( 1 );
    115                                 }
    116                                 return BUILD_DIR + file;
     149                                return setFilePath( BUILD_DIR, file );
     150                        } ).concat(
     151                                cssFiles.map( function( file ) {
     152                                        return setFilePath( SOURCE_DIR, file );
     153                                } )
     154                        ).concat(
     155                                jsFiles.map( function( file ) {
     156                                        return setFilePath( SOURCE_DIR, file );
     157                                } )
     158                        ).concat(
     159                                webpackFiles.map( function( file ) {
     160                                        return setFilePath( SOURCE_DIR, file );
     161                                } )
     162                        ),
     163
     164                        // Clean built JS, CSS, and Webpack files from either /src or /build.
     165                        css: cssFiles.map( function( file ) {
     166                                return setFilePath( WORKING_DIR, file );
    117167                        } ),
    118                         css: [
    119                                 WORKING_DIR + 'wp-admin/css/*.min.css',
    120                                 WORKING_DIR + 'wp-admin/css/*-rtl*.css',
    121                                 WORKING_DIR + 'wp-includes/css/*.min.css',
    122                                 WORKING_DIR + 'wp-includes/css/*-rtl*.css',
    123                                 WORKING_DIR + 'wp-admin/css/colors/**/*.css'
    124                         ],
    125                         js: [
    126                                 WORKING_DIR + 'wp-admin/js/',
    127                                 WORKING_DIR + 'wp-includes/js/'
    128                         ],
    129                         'webpack-assets': [
    130                                 WORKING_DIR + 'wp-includes/assets/*',
    131                                 WORKING_DIR + 'wp-includes/css/dist/',
    132                                 '!' + WORKING_DIR + 'wp-includes/assets/script-loader-packages.min.php'
    133                         ],
     168                        js: jsFiles.map( function( file ) {
     169                                return setFilePath( WORKING_DIR, file );
     170                        } ),
     171                        'webpack-assets': webpackFiles.map( function( file ) {
     172                                return setFilePath( WORKING_DIR, file );
     173                        } ),
    134174                        dynamic: {
    135175                                dot: true,
    … …  
    238278                                                ],
    239279                                                dest: WORKING_DIR + 'wp-includes/js/jquery/'
    240                                         },
    241                                         {
     280                                        }
     281                                ].concat(
     282                                        // Copy tinymce.js only when building to /src.
     283                                        WORKING_DIR === SOURCE_DIR ? {
    242284                                                expand: true,
    243285                                                cwd: SOURCE_DIR + 'js/_enqueues/vendor/tinymce/',
    244286                                                src: 'tinymce.js',
    245287                                                dest: SOURCE_DIR + 'wp-includes/js/tinymce/'
    246                                         },
    247 
    248                                 ]
     288                                        } : []
     289                                )
    249290                        },
    250291                        'admin-js': {
Note: See TracChangeset for help on using the changeset viewer.