Skip to content

Commit

Permalink
Bring back webpack config (#1897)
Browse files Browse the repository at this point in the history
  • Loading branch information
dbaeumer authored Jul 8, 2024
1 parent 01c52f7 commit edc9685
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 2 deletions.
25 changes: 25 additions & 0 deletions client/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*---------------------------------------------------------------------------------------------
* 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');

module.exports = withDefaults({
context: path.join(__dirname),
entry: {
extension: './src/extension.ts',
},
resolve: {
symlinks: false
},
output: {
filename: 'extension.js',
path: path.join(__dirname, 'out')
}
});
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "vscode-eslint",
"displayName": "ESLint",
"description": "Integrates ESLint JavaScript into VS Code.",
"version": "3.0.10",
"version": "3.0.11",
"author": "Microsoft Corporation",
"license": "MIT",
"repository": {
Expand Down Expand Up @@ -628,7 +628,9 @@
]
},
"scripts": {
"vscode:prepublish": "npm run esbuild",
"vscode:prepublish": "npm run webpack",
"webpack": "npm run clean && webpack --mode production --config ./client/webpack.config.js && webpack --mode production --config ./server/webpack.config.js",
"webpack:dev": "npm run clean && webpack --mode none --config ./client/webpack.config.js && webpack --mode none --config ./server/webpack.config.js",
"esbuild": "npm run clean && node ./esbuild.js",
"compile": "tsc -b",
"compile:client": "tsc -b ./client/tsconfig.json",
Expand Down
25 changes: 25 additions & 0 deletions server/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*---------------------------------------------------------------------------------------------
* 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');

module.exports = withDefaults({
context: path.join(__dirname),
entry: {
extension: './src/eslintServer.ts',
},
resolve: {
symlinks: false
},
output: {
filename: 'eslintServer.js',
path: path.join(__dirname, 'out')
}
});
59 changes: 59 additions & 0 deletions shared.webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

//@ts-check
/** @typedef {import('webpack').Configuration} WebpackConfig **/

'use strict';

const path = require('path');
const merge = require('merge-options');

module.exports = function withDefaults(/**@type WebpackConfig*/extConfig) {

/** @type WebpackConfig */
let defaultConfig = {
mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
target: 'node', // extensions run in a node context
node: {
__dirname: false // leave the __dirname-behaviour intact
},
resolve: {
conditionNames: ['import', 'require', 'node'],
mainFields: ['module', 'main'],
extensions: ['.ts', '.js'] // support ts-files and js-files
},
module: {
rules: [{
test: /\.ts$/,
exclude: /node_modules/,
use: [{
// configure TypeScript loader:
// * enable sources maps for end-to-end source maps
loader: 'ts-loader',
options: {
compilerOptions: {
"sourceMap": true,
}
}
}]
}]
},
externals: {
'vscode': 'commonjs vscode', // ignored because it doesn't exist
},
output: {
// all output goes into `dist`.
// packaging depends on that and this must always be like it
filename: '[name].js',
path: path.join(extConfig.context, 'out'),
libraryTarget: "commonjs",
},
// yes, really source maps
devtool: 'source-map'
};

return merge(defaultConfig, extConfig);
};

0 comments on commit edc9685

Please sign in to comment.