UNPKG

antd-tools

Version:
101 lines (87 loc) 2.76 kB
const path = require('path'); const webpack = require('atool-build/lib/webpack'); const deepAssign = require('deep-assign'); const packageName = require(path.join(process.cwd(), 'package.json')).name; module.exports = function (webpackConfig, modules) { webpackConfig.resolve.alias = { [packageName]: process.cwd(), }; const babelConfig = require('./getBabelCommonConfig')(modules || false); const pluginImportOptions = [{ style: true, libraryName: packageName, libraryDirectory: 'components', }]; if (packageName !== 'antd') { pluginImportOptions.push({ style: 'css', libraryName: 'antd', }); } babelConfig.plugins.push([ require.resolve('babel-plugin-import'), pluginImportOptions, ]); const loaders = webpackConfig.module.loaders; if (loaders[0]) { delete loaders[0].query; } if (loaders[1]) { delete loaders[1].query; } webpackConfig.babel = babelConfig; // remove common.js webpackConfig.plugins = webpackConfig.plugins.filter((plugin) => { const ret = !(plugin instanceof webpack.optimize.CommonsChunkPlugin); return ret; }); if (process.env.RUN_ENV === 'PRODUCTION') { const entry = ['./index']; webpackConfig.entry = { [`${packageName}.min`]: entry, }; webpackConfig.externals = { react: { root: 'React', commonjs2: 'react', commonjs: 'react', amd: 'react', }, 'react-dom': { root: 'ReactDOM', commonjs2: 'react-dom', commonjs: 'react-dom', amd: 'react-dom', }, }; webpackConfig.output.library = packageName; webpackConfig.output.libraryTarget = 'umd'; // Add banner const pkg = require(path.join(process.cwd(), 'package.json')); /* eslint prefer-template:0 */ webpackConfig.plugins.push(new webpack.BannerPlugin( pkg.name + ' v' + pkg.version + '\n\nCopyright 2015-present, Alipay, Inc.\nAll rights reserved.' // eslint-disable-line )); const uncompressedWebpackConfig = deepAssign({}, webpackConfig); uncompressedWebpackConfig.entry = { [packageName]: entry, }; uncompressedWebpackConfig.plugins = webpackConfig.plugins.filter((plugin) => { const ret = !(plugin instanceof webpack.optimize.UglifyJsPlugin); return ret; }); uncompressedWebpackConfig.plugins = uncompressedWebpackConfig.plugins.filter((plugin) => { const ret = !(plugin instanceof webpack.DefinePlugin); return ret; }); uncompressedWebpackConfig.plugins.push(new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('development'), })); return [ webpackConfig, uncompressedWebpackConfig, ]; } return webpackConfig; };