d2d7243e80
After the JavaScript reorganization in [43309], it was no longer possible to test WordPress from the `src` folder. That meant a build step was required to test PHP modifications. That is suboptimal as even a simple copy is slower than a web server just serving the new file. We achieve building to `src` by setting a `WORKING_DIR` constant in the Gruntfile that is `build` by default, but changes to `src` when the `--dev` flag is present on any Grunt command. We provide sensible defaults so some commands, such as copying `version.php`, always build to `build`. Because testing from `build` is no longer required, we change the messages present in `index.php` and `wp-admin/index.php` to be more broadly about building WordPress. We also change the webpack config to have more straightforward behavior based on the `buildTarget` argument. It only determines the build target now and has no implicit behavior anymore. `grunt build` still works as it worked before, to make sure that the build server produces the same `wordpress.zip` we are used to. We do all this instead of a symlink setup because symlinks don't work on every platform. Props omarreiss, netweb, flixos90, SergeyBiryukov. Fixes #44492. git-svn-id: https://develop.svn.wordpress.org/trunk@44359 602fd350-edb4-49c9-b593-d223f7449a82
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
const UglifyJsPlugin = require( 'uglifyjs-webpack-plugin' );
|
|
|
|
var path = require( 'path' ),
|
|
admin_files = {};
|
|
|
|
const baseDir = path.join( __dirname, '../../' );
|
|
|
|
module.exports = function( env = { environment: 'production', watch: false, buildTarget: false } ) {
|
|
const include_files = {
|
|
[ env.buildTarget + 'wp-includes/js/media-audiovideo.js' ]: ['./src/js/_enqueues/wp/media/audiovideo.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-audiovideo.min.js' ]: ['./src/js/_enqueues/wp/media/audiovideo.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-grid.js' ]: ['./src/js/_enqueues/wp/media/grid.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-grid.min.js' ]: ['./src/js/_enqueues/wp/media/grid.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-models.js' ]: ['./src/js/_enqueues/wp/media/models.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-models.min.js' ]: ['./src/js/_enqueues/wp/media/models.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-views.js' ]: ['./src/js/_enqueues/wp/media/views.js'],
|
|
[ env.buildTarget + 'wp-includes/js/media-views.min.js' ]: ['./src/js/_enqueues/wp/media/views.js'],
|
|
};
|
|
|
|
const mediaConfig = {
|
|
mode: "production",
|
|
cache: true,
|
|
entry: Object.assign( admin_files, include_files ),
|
|
output: {
|
|
path: baseDir,
|
|
filename: '[name]',
|
|
},
|
|
optimization: {
|
|
minimize: true,
|
|
minimizer: [
|
|
new UglifyJsPlugin( {
|
|
include: /\.min\.js$/,
|
|
} )
|
|
]
|
|
},
|
|
watch: env.watch,
|
|
};
|
|
|
|
return mediaConfig;
|
|
};
|