//@ts-check 'use strict'; const path = require('path'); const webpack = require('webpack'); /**@type {import('webpack').Configuration}*/ const config = { target: 'node', // vscode extensions run in webworker context for VS Code web 📖 -> https://webpack.js.org/configuration/target/#target // entry: { // client: './client/src/extension.ts', // server: './server/src/server.ts' // }, // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/ entry: "./server/src/server.ts", // entry: "./client/src/extension.ts", output: { // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/ path: path.resolve(__dirname, 'dist'), filename: 'server.js', libraryTarget: 'commonjs2', devtoolModuleFilenameTemplate: '../[resource-path]' }, devtool: 'source-map', externals: { vscode: 'commonjs vscode' // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ }, resolve: { // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader mainFields: ['browser', 'module', 'main'], // look for `browser` entry point in imported node modules extensions: ['.ts', '.js'], alias: { // provides alternate implementation for node module and source files }, fallback: { // Webpack 5 no longer polyfills Node.js core modules automatically. // see https://webpack.js.org/configuration/resolve/#resolvefallback // for the list of Node.js core module polyfills. } }, module: { rules: [ { test: /\.ts$/, exclude: /node_modules/, use: [ { loader: 'ts-loader', options: { "projectReferences": true } } ] } ] } }; module.exports = config;