Ticket #40894: 40894.4.diff
File 40894.4.diff, 5.9 KB (added by , 7 years ago) |
---|
-
.jshintrc
21 21 "Backbone": false, 22 22 "jQuery": false, 23 23 "JSON": false, 24 "wp": false 24 "wp": false, 25 "export": false, 26 "module": false, 27 "require": false 25 28 } 26 29 } -
Gruntfile.js
1 1 /* jshint node:true */ 2 var webpackConfig = require( './webpack.config' ); 3 var webpackDevConfig = require( './webpack-dev.config' ); 4 2 5 module.exports = function(grunt) { 3 6 var path = require('path'), 4 7 fs = require( 'fs' ), 5 8 SOURCE_DIR = 'src/', 6 9 BUILD_DIR = 'build/', 7 10 BANNER_TEXT = '/*! This file is auto-generated */', 8 autoprefixer = require('autoprefixer'), 9 mediaConfig = {}, 10 mediaBuilds = ['audiovideo', 'grid', 'models', 'views']; 11 autoprefixer = require( 'autoprefixer' ); 11 12 12 13 // Load tasks. 13 14 require('matchdep').filterDev(['grunt-*', '!grunt-legacy-util']).forEach( grunt.loadNpmTasks ); 14 15 // Load legacy utils 15 16 grunt.util = require('grunt-legacy-util'); 16 17 17 mediaBuilds.forEach( function ( build ) {18 var path = SOURCE_DIR + 'wp-includes/js/media';19 mediaConfig[ build ] = { files : {} };20 mediaConfig[ build ].files[ path + '-' + build + '.js' ] = [ path + '/' + build + '.manifest.js' ];21 } );22 23 18 // Project configuration. 24 19 grunt.initConfig({ 25 20 postcss: { … … 175 170 } 176 171 } 177 172 }, 178 browserify: mediaConfig,179 173 sass: { 180 174 colors: { 181 175 expand: true, … … 336 330 ] 337 331 }, 338 332 media: { 339 options: {340 browserify: true341 },342 333 src: [ 343 334 SOURCE_DIR + 'wp-includes/js/media/**/*.js' 344 335 ] … … 558 549 dest: SOURCE_DIR + 'wp-includes/js/jquery/jquery.masonry.min.js' 559 550 } 560 551 }, 561 552 webpack: { 553 options: { 554 stats: ! process.env.NODE_ENV || 'development' === process.env.NODE_ENV 555 }, 556 prod: webpackConfig, 557 dev: Object.assign( { watch: true }, webpackDevConfig ) 558 }, 562 559 concat: { 563 560 tinymce: { 564 561 options: { … … 741 738 } 742 739 }, 743 740 config: { 744 files: 'Gruntfile.js' 741 files: [ 742 'Gruntfile.js', 743 'webpack-dev.config.js', 744 'webpack.config.js' 745 ] 745 746 }, 746 747 colors: { 747 748 files: [SOURCE_DIR + 'wp-admin/css/colors/**'], … … 779 780 780 781 // Register tasks. 781 782 783 // Webpack task. 784 grunt.loadNpmTasks( 'grunt-webpack' ); 785 782 786 // RTL task. 783 787 grunt.registerTask('rtl', ['rtlcss:core', 'rtlcss:colors']); 784 788 … … 802 806 grunt.renameTask( 'watch', '_watch' ); 803 807 804 808 grunt.registerTask( 'watch', function() { 805 if ( ! this.args.length || this.args.indexOf( 'browserify' ) > -1 ) { 806 grunt.config( 'browserify.options', { 807 browserifyOptions: { 808 debug: true 809 }, 810 watch: true 811 } ); 809 if ( ! this.args.length || this.args.indexOf( 'webpack' ) > -1 ) { 812 810 813 grunt.task.run( ' browserify' );811 grunt.task.run( 'webpack:dev' ); 814 812 } 815 813 816 814 grunt.task.run( '_' + this.nameArgs ); … … 821 819 ] ); 822 820 823 821 grunt.registerTask( 'precommit:js', [ 824 ' browserify',822 'webpack:prod', 825 823 'jshint:corejs', 826 824 'uglify:bookmarklet', 827 825 'uglify:masonry', … … 890 888 return regex.test( result.stdout ); 891 889 } 892 890 893 if ( [ 'package.json', 'Gruntfile.js' ].some( testPath ) ) {891 if ( [ 'package.json', 'Gruntfile.js', 'webpack.config.js' ].some( testPath ) ) { 894 892 grunt.log.writeln( 'Configuration files modified. Running `prerelease`.' ); 895 893 taskList.push( 'prerelease' ); 896 894 } else { … … 988 986 grunt.event.on('watch', function( action, filepath, target ) { 989 987 var src; 990 988 991 if ( [ 'all', 'rtl', ' browserify' ].indexOf( target ) === -1 ) {989 if ( [ 'all', 'rtl', 'webpack' ].indexOf( target ) === -1 ) { 992 990 return; 993 991 } 994 992 -
package.json
15 15 "autoprefixer": "^6.5.1", 16 16 "grunt": "~0.4.5", 17 17 "grunt-banner": "^0.6.0", 18 "grunt-browserify": "~5.0.0",19 18 "grunt-contrib-clean": "~1.0.0", 20 19 "grunt-contrib-compress": "~1.3.0", 21 20 "grunt-contrib-concat": "~1.0.0", … … 35 34 "grunt-replace": "~1.0.1", 36 35 "grunt-rtlcss": "~2.0.1", 37 36 "grunt-sass": "~1.2.1", 37 "grunt-webpack": "^3.0.2", 38 38 "ink-docstrap": "^1.3.0", 39 "matchdep": "~1.0.0" 39 "matchdep": "~1.0.0", 40 "matchdep": "~1.0.0", 41 "webpack": "^3.5.4", 42 "webpack-dev-server": "^2.7.1" 40 43 } 41 44 } -
webpack-dev.config.js
1 var path = require('path'), 2 SOURCE_DIR = 'src/', 3 mediaConfig = {}, 4 mediaBuilds = ['audiovideo', 'grid', 'models', 'views'], 5 webpack = require('webpack'); 6 7 8 mediaBuilds.forEach( function ( build ) { 9 var path = SOURCE_DIR + 'wp-includes/js/media'; 10 mediaConfig[ build ] = './' + path + '/' + build + '.manifest.js'; 11 } ); 12 13 module.exports = { 14 cache: true, 15 entry: mediaConfig, 16 output: { 17 path: path.join( __dirname, 'src/wp-includes/js' ), 18 filename: 'media-[name].js' 19 } 20 } -
webpack.config.js
1 var path = require('path'), 2 SOURCE_DIR = 'src/', 3 mediaConfig = {}, 4 mediaBuilds = ['audiovideo', 'grid', 'models', 'views'], 5 webpack = require('webpack'); 6 7 8 mediaBuilds.forEach( function ( build ) { 9 var path = SOURCE_DIR + 'wp-includes/js/media'; 10 mediaConfig[ build ] = './' + path + '/' + build + '.manifest.js'; 11 } ); 12 13 module.exports = { 14 cache: true, 15 entry: mediaConfig, 16 output: { 17 path: path.join( __dirname, 'src/wp-includes/js' ), 18 filename: 'media-[name].js' 19 }, 20 plugins: [ 21 new webpack.optimize.ModuleConcatenationPlugin() 22 ] 23 }