Files
vscode-extension-samples/webpack-sample
2022-04-13 15:49:42 -07:00
..
2020-05-29 14:20:07 -07:00
2020-05-29 14:01:37 -07:00
2020-05-29 14:13:32 -07:00
2018-09-20 10:56:48 +02:00
2018-11-15 10:10:15 +01:00
2022-04-13 15:49:42 -07:00
2022-04-13 15:49:42 -07:00
2020-06-24 17:22:59 -03:00
2022-02-28 13:45:21 -08:00
2019-03-04 14:15:59 +01:00

Webpack & Extensions

This is an extension that uses https://webpack.js.org to bundle and minify its sources. Using webpack will help to reduce the install- and startup-time of large extensions because instead of hundreds of files, a single file is produced.

Configuration

Webpack is configured in the webpack.config.js-file. Find annotation inside the file itself or refer to the excellent webpack documentation: https://webpack.js.org/configuration/. In short, the config-files defines the entry point of the extension, to use TypeScript, to produce a commonjs-module, and what modules not to bundle.

Scripts

The scripts-section of the package.json-file has entries for webpack. Those compile TypeScript and produce the bundle as well as producing a minified production build. Note, that there is no dedicated TypeScript-script as webpack takes care of that.

More

If you use vscode-nls to localize your extension that you likely also use vscode-nls-dev to create language bundles at build time. To support webpack, a loader has been added to vscode-nls-dev. Add the section below to the modules/rules-configuration.

{
  // vscode-nls-dev loader:
  // * rewrite nls-calls
  loader: 'vscode-nls-dev/lib/webpack-loader',
  options: {
    base: path.join(__dirname, 'src')
}

A good sample is the shared config built-in extensions use: bf5b0585d2/extensions/shared.webpack.config.js (L29-L51)