mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups
synced 2024-11-23 23:24:39 +00:00
c4b50b04ac
In I7395e3438836149becdd576942bdaf6f21b4163f the settings templates were rewritten so that they no longer displayed an image. descriptionText and images were dropped from the template but not from the template provider. These are artifacts from relating to that patch and are no longer used. Change-Id: I1be7ef288d37f338e83dab3cf041e628a06608d2
95 lines
2.5 KiB
JavaScript
95 lines
2.5 KiB
JavaScript
/* global __dirname, process */
|
|
const path = require( 'path' ),
|
|
webpack = require( 'webpack' ),
|
|
PUBLIC_PATH = '/w/extensions/Popups',
|
|
isProduction = process.env.NODE_ENV === 'production';
|
|
|
|
let reduxPath,
|
|
reduxThunkPath,
|
|
conf;
|
|
|
|
reduxPath = isProduction ?
|
|
'node_modules/redux/dist/redux.min.js' :
|
|
'node_modules/redux/dist/redux.js';
|
|
|
|
reduxThunkPath = isProduction ?
|
|
'node_modules/redux-thunk/dist/redux-thunk.min.js' :
|
|
'node_modules/redux-thunk/dist/redux-thunk.js';
|
|
|
|
conf = {
|
|
output: {
|
|
// The absolute path to the output directory.
|
|
path: path.resolve( __dirname, 'resources/dist' ),
|
|
devtoolModuleFilenameTemplate: `${PUBLIC_PATH }/[resource-path]`,
|
|
|
|
// Write each chunk (entries, here) to a file named after the entry, e.g.
|
|
// the "index" entry gets written to index.js.
|
|
filename: '[name].js',
|
|
// as we cannot serve .map files from production servers store map files
|
|
// with .json extension
|
|
sourceMapFilename: '[file].json'
|
|
},
|
|
entry: { index: './src' },
|
|
performance: {
|
|
hints: isProduction ? 'error' : false,
|
|
maxAssetSize: 35.3 * 1024,
|
|
maxEntrypointSize: 35.3 * 1024,
|
|
assetFilter: function ( filename ) {
|
|
// The default filter excludes map files but we rename ours to .filename.
|
|
return filename.endsWith( '.js' );
|
|
}
|
|
},
|
|
devtool: 'source-map',
|
|
resolve: {
|
|
alias: {
|
|
redux: path.resolve( __dirname, reduxPath ),
|
|
'redux-thunk': path.resolve( __dirname, reduxThunkPath )
|
|
}
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.js$/,
|
|
exclude: /node_modules/,
|
|
use: {
|
|
loader: 'babel-loader',
|
|
options: { cacheDirectory: true }
|
|
}
|
|
},
|
|
{
|
|
test: /\.svg$/,
|
|
loader: 'svg-inline-loader',
|
|
options: {
|
|
removeSVGTagAttrs: false // Keep width and height attributes.
|
|
}
|
|
}
|
|
]
|
|
},
|
|
plugins: [
|
|
// To generate identifiers that are preserved over builds, webpack supplies
|
|
// the NamedModulesPlugin (generates comments with file names on bundle)
|
|
// https://webpack.js.org/guides/caching/#deterministic-hashes
|
|
new webpack.NamedModulesPlugin()
|
|
]
|
|
};
|
|
|
|
// Production settings.
|
|
// Define the global process.env.NODE_ENV so that libraries like redux and
|
|
// redux-thunk get development code trimmed.
|
|
// Enable minimize flags for webpack loaders and disable debug.
|
|
if ( isProduction ) {
|
|
conf.plugins = conf.plugins.concat( [
|
|
new webpack.LoaderOptionsPlugin( {
|
|
minimize: true,
|
|
debug: false
|
|
} ),
|
|
new webpack.DefinePlugin( {
|
|
'process.env': {
|
|
NODE_ENV: JSON.stringify( 'production' )
|
|
}
|
|
} )
|
|
] );
|
|
}
|
|
|
|
module.exports = conf;
|