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 path = require('path');
const webpack = require('webpack');
const config = withDefaults({
context: path.join(__dirname, 'client'),

View File

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

View File

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

View File

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

View File

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

View File

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