polish webpack configs

This commit is contained in:
Martin Aeschlimann 2021-07-09 11:55:21 +02:00
parent 7ded90e452
commit cde5781978
No known key found for this signature in database
GPG Key ID: 2609A01E695523E3
6 changed files with 21 additions and 32 deletions

View File

@ -9,7 +9,6 @@
const withDefaults = require('../shared.webpack.config'); const withDefaults = require('../shared.webpack.config');
const path = require('path'); const path = require('path');
const webpack = require('webpack');
const config = withDefaults({ const config = withDefaults({
context: path.join(__dirname, 'client'), context: path.join(__dirname, 'client'),

View File

@ -9,7 +9,6 @@
const withDefaults = require('../../shared.webpack.config'); const withDefaults = require('../../shared.webpack.config');
const path = require('path'); const path = require('path');
const webpack = require('webpack');
const config = withDefaults({ const config = withDefaults({
context: path.join(__dirname), context: path.join(__dirname),

View File

@ -7,7 +7,6 @@
'use strict'; 'use strict';
const path = require('path');
const withDefaults = require('../shared.webpack.config'); const withDefaults = require('../shared.webpack.config');
module.exports = withDefaults({ module.exports = withDefaults({

View File

@ -7,8 +7,6 @@
'use strict'; 'use strict';
const path = require('path');
const withDefaults = require('../shared.webpack.config'); const withDefaults = require('../shared.webpack.config');
module.exports = withDefaults({ module.exports = withDefaults({

View File

@ -64,13 +64,13 @@ function withNodeDefaults(/**@type WebpackConfig*/extConfig) {
}, },
// yes, really source maps // yes, really source maps
devtool: 'source-map', devtool: 'source-map',
plugins: getDefaultNodePlugins(extConfig.context), plugins: nodePlugins(extConfig.context),
}; };
return merge(defaultConfig, extConfig); return merge(defaultConfig, extConfig);
} }
function getDefaultNodePlugins(context) { function nodePlugins(context) {
// Need to find the top-most `package.json` file // Need to find the top-most `package.json` file
const folderName = path.relative(__dirname, context).split(/[\\\/]/)[0]; const folderName = path.relative(__dirname, context).split(/[\\\/]/)[0];
const pkgPath = path.join(__dirname, folderName, 'package.json'); const pkgPath = path.join(__dirname, folderName, 'package.json');
@ -136,31 +136,30 @@ function withBrowserDefaults(/**@type WebpackConfig*/extConfig) {
}, },
// yes, really source maps // yes, really source maps
devtool: 'source-map', devtool: 'source-map',
plugins: getDefaultBrowserPlugins() plugins: browserPlugins
}; };
return merge(defaultConfig, extConfig); return merge(defaultConfig, extConfig);
} }
function getDefaultBrowserPlugins() { const browserPlugins = [
return [ new CopyWebpackPlugin({
new CopyWebpackPlugin({ patterns: [
patterns: [ { from: 'src', to: '.', globOptions: { ignore: ['**/test/**', '**/*.ts'] }, noErrorOnMissing: true }
{ from: 'src', to: '.', globOptions: { ignore: ['**/test/**', '**/*.ts'] }, noErrorOnMissing: true } ]
] }),
}), new DefinePlugin({
new DefinePlugin({ 'process.env': JSON.stringify({}),
'process.env': JSON.stringify({}), 'process.env.BROWSER_ENV': JSON.stringify('true')
'process.env.BROWSER_ENV': JSON.stringify('true') })
}) ];
];
}
module.exports = withNodeDefaults; module.exports = withNodeDefaults;
module.exports.node = withNodeDefaults; module.exports.node = withNodeDefaults;
module.exports.browser = withBrowserDefaults; module.exports.browser = withBrowserDefaults;
module.exports.getNodePlugins = getDefaultNodePlugins; module.exports.nodePlugins = nodePlugins;
module.exports.getBrowserPlugins = getDefaultBrowserPlugins; module.exports.browserPlugins = browserPlugins;

View File

@ -9,9 +9,9 @@
const CopyPlugin = require('copy-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin');
const Terser = require('terser'); const Terser = require('terser');
const defaultConnfig = require('../shared.webpack.config'); const defaultConfig = require('../shared.webpack.config');
const withBrowserDefaults = defaultConnfig.browser; const withBrowserDefaults = defaultConfig.browser;
const getBrowserPlugins = defaultConnfig.getBrowserPlugins; const browserPlugins = defaultConfig.browserPlugins;
const languages = [ const languages = [
'zh-tw', 'zh-tw',
@ -34,13 +34,8 @@ module.exports = withBrowserDefaults({
entry: { entry: {
extension: './src/extension.browser.ts', extension: './src/extension.browser.ts',
}, },
resolve: {
fallback: {
os: false
}
},
plugins: [ plugins: [
...getBrowserPlugins(), // add plugins, don't replace inherited ...browserPlugins, // add plugins, don't replace inherited
// @ts-ignore // @ts-ignore
new CopyPlugin({ new CopyPlugin({