1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //@ts-check
- 'use strict';
- const path = require('path');
- const webpack = require('webpack');
- /**@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
- experiments: {
- asyncWebAssembly: true,
- layers: true,
- },
- entry: './src/main.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, 'out'),
- filename: 'main.js',
- libraryTarget: 'commonjs2',
- devtoolModuleFilenameTemplate: '../[resource-path]',
- publicPath: '',
- },
- 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.
- // "util": require.resolve("util/")
- }
- },
- module: {
- rules: [
- {
- test: /\.ts$/,
- exclude: /node_modules/,
- use: [
- {
- loader: 'ts-loader'
- }
- ]
- }
- ]
- },
- };
- module.exports = config;
|