//@ts-check "use strict"; const path = require("path"); /**@type {import('webpack').Configuration}*/ const config = { target: "webworker", // vscode extensions run in webworker context for VS Code web 📖 -> https://webpack.js.org/configuration/target/#target entry: "./client/src/extension.ts", // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/ output: { // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/ path: path.resolve(__dirname, "dist"), filename: "extension.js", libraryTarget: "commonjs2", devtoolModuleFilenameTemplate: "../[resource-path]", }, devtool: "hidden-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: {}, }, module: { rules: [ { test: /\.ts$/, exclude: /node_modules/, use: [ { loader: "ts-loader", }, ], }, ], }, }; module.exports = config;