Skip to content
Snippets Groups Projects
Select Git revision
  • c82a971c8c1db94a419e438e0a3437cf979c30df
  • master default protected
  • docs-improve_user_path_description
  • fix-pipeline
  • ci-change_exercises_image_registry
  • feat-merge_recorder_in_extension
  • feat-default_folder
  • feat-change_user
  • develop protected
  • refactor-mission
  • feat-exercise_automatic_save
  • docs-improve_documentation
  • feat-create_little_container_for_developer
  • feat-local-dev
  • 0.1.12
  • 0.1.11
  • 0.1.10
  • 0.1.5
18 results

webpack.config.ts

Blame
  • Mohamed AZIKIOU's avatar
    Mohamed AZIKIOU authored and Mario HOTAJ committed
    bb4c883d
    History
    webpack.config.ts 1.92 KiB
    //@ts-check
    
    'use strict';
    
    import * as path from 'path';
    import * as webpack from 'webpack';
    import 'webpack-dev-server';
    import { IgnorePlugin } from 'webpack';
    
    //@ts-check
    /** @typedef {import('webpack').Configuration} WebpackConfig **/
    
    /** @type WebpackConfig */
    const config: webpack.Configuration = {
      target: 'node', // vscode extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
      mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
    
      entry: './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',
      },
      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/
        // modules added here also need to be added in the .vscodeignore file
      },
      resolve: {
        // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader
        extensions: ['.ts', '.js'],
      },
      module: {
        rules: [
          {
            test: /\.ts$/,
            exclude: /node_modules/,
            use: [
              {
                loader: 'ts-loader',
              },
            ],
          },
        ],
      },
      // check https://stackoverflow.com/questions/52125641/electronwebpack-module-not-found-error-cant-resolve-fsevents-fs-etc-in-cho
      plugins: process.platform === 'darwin' ? [] : [new IgnorePlugin({ resourceRegExp: /^fsevents$/ })],
      devtool: 'nosources-source-map',
      infrastructureLogging: {
        level: 'log', // enables logging required for problem matchers
      },
    };
    
    export default config;