break up extension-browser.webpack.config

This commit is contained in:
Martin Aeschlimann 2020-06-08 18:06:26 +02:00
parent 39456ea09d
commit bd57bd7078
4 changed files with 47 additions and 24 deletions

View file

@ -16,4 +16,6 @@ server/.npmignore
yarn.lock
server/extension.webpack.config.js
extension.webpack.config.js
CONTRIBUTING.md
server/extension-browser.webpack.config.js
extension-browser.webpack.config.js
CONTRIBUTING.md

View file

@ -30,19 +30,4 @@ const clientConfig = withDefaults({
clientConfig.plugins[1] = vscodeNlsReplacement; // replace nls bundler
clientConfig.module.rules[0].use.shift(); // remove nls loader
const serverConfig = withDefaults({
target: 'webworker',
context: path.join(__dirname, 'server'),
entry: {
extension: './src/browser/cssServerMain.ts',
},
output: {
filename: 'cssServerMain.js',
path: path.join(__dirname, 'server', 'dist', 'browser'),
libraryTarget: 'var'
}
});
serverConfig.plugins[1] = vscodeNlsReplacement; // replace nls bundler
serverConfig.module.rules[0].use.shift(); // remove nls loader
module.exports = [clientConfig, serverConfig];
module.exports = clientConfig;

View file

@ -0,0 +1,34 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
//@ts-check
'use strict';
const withDefaults = require('../../shared.webpack.config');
const path = require('path');
const webpack = require('webpack');
const vscodeNlsReplacement = new webpack.NormalModuleReplacementPlugin(
/vscode\-nls[\\/]lib[\\/]main\.js/,
path.join(__dirname, '../client/out/browser/vscodeNlsShim.js')
);
const serverConfig = withDefaults({
target: 'webworker',
context: __dirname,
entry: {
extension: './src/browser/cssServerMain.ts',
},
output: {
filename: 'cssServerMain.js',
path: path.join(__dirname, 'dist', 'browser'),
libraryTarget: 'var'
}
});
serverConfig.plugins[1] = vscodeNlsReplacement; // replace nls bundler
serverConfig.module.rules[0].use.shift(); // remove nls loader
module.exports = serverConfig;

View file

@ -12,6 +12,7 @@ const url = require('url');
const fs = require('fs');
const path = require('path');
const util = require('util');
const glob = require('glob');
const opn = require('opn');
const minimist = require('minimist');
const webpack = require('webpack');
@ -78,8 +79,13 @@ async function initialize() {
if (packageJSON.browser) {
packageJSON.main = packageJSON.browser;
const webpackConfigPath = path.join(EXTENSIONS_ROOT, extensionFolder, 'extension-browser.webpack.config.js');
if ((await exists(webpackConfigPath))) {
const webpackConfigLocations = glob.sync(
path.join(EXTENSIONS_ROOT, extensionFolder, '**', 'extension-browser.webpack.config.js'),
{ ignore: ['**/node_modules'] }
);
for (const webpackConfigPath of webpackConfigLocations) {
const configOrFnOrArray = require(webpackConfigPath);
function addConfig(configOrFn) {
if (typeof configOrFn === 'function') {
@ -88,11 +94,7 @@ async function initialize() {
webpackConfigs.push(configOrFn);
}
}
if (Array.isArray(configOrFnOrArray)) {
configOrFnOrArray.forEach(addConfig);
} else {
addConfig(configOrFnOrArray);
}
addConfig(configOrFnOrArray);
}
}