From bd57bd7078c76177eba270ee128dc4601c1035cf Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 8 Jun 2020 18:06:26 +0200 Subject: [PATCH] break up extension-browser.webpack.config --- .../css-language-features/.vscodeignore | 4 ++- .../extension-browser.webpack.config.js | 17 +--------- .../extension-browser.webpack.config.js | 34 +++++++++++++++++++ scripts/code-web.js | 16 +++++---- 4 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 extensions/css-language-features/server/extension-browser.webpack.config.js diff --git a/extensions/css-language-features/.vscodeignore b/extensions/css-language-features/.vscodeignore index fa38a471362..a08d9b8dec7 100644 --- a/extensions/css-language-features/.vscodeignore +++ b/extensions/css-language-features/.vscodeignore @@ -16,4 +16,6 @@ server/.npmignore yarn.lock server/extension.webpack.config.js extension.webpack.config.js -CONTRIBUTING.md \ No newline at end of file +server/extension-browser.webpack.config.js +extension-browser.webpack.config.js +CONTRIBUTING.md diff --git a/extensions/css-language-features/extension-browser.webpack.config.js b/extensions/css-language-features/extension-browser.webpack.config.js index 666f4293d6a..3422a580b9c 100644 --- a/extensions/css-language-features/extension-browser.webpack.config.js +++ b/extensions/css-language-features/extension-browser.webpack.config.js @@ -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; diff --git a/extensions/css-language-features/server/extension-browser.webpack.config.js b/extensions/css-language-features/server/extension-browser.webpack.config.js new file mode 100644 index 00000000000..983b5d317a3 --- /dev/null +++ b/extensions/css-language-features/server/extension-browser.webpack.config.js @@ -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; diff --git a/scripts/code-web.js b/scripts/code-web.js index e78d39835b5..c7bb6421e82 100755 --- a/scripts/code-web.js +++ b/scripts/code-web.js @@ -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); } }