2020-02-23 16:18:33 +08:00
// @ts-check
'use strict' ;
const path = require ( 'path' ) ;
2020-03-22 21:49:05 +08:00
const CopyPlugin = require ( 'copy-webpack-plugin' ) ;
2020-02-23 16:18:33 +08:00
/**@type {import('webpack').Configuration}*/
const config = {
2020-03-22 21:49:05 +08:00
target : 'node' , // vscode extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/
2020-02-23 16:18:33 +08:00
2020-03-22 21:49:05 +08:00
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 , 'out' ) ,
filename : 'extension.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
extensions : [ '.ts' , '.js' ] ,
} ,
module : {
rules : [
{
test : /\.ts$/ ,
exclude : /node_modules/ ,
use : [
{
loader : 'ts-loader' ,
} ,
] ,
} ,
] ,
} ,
2020-02-23 16:18:33 +08:00
} ;
2020-03-22 21:49:05 +08:00
/**@type {import('webpack').Configuration}*/
const webviewConfig = {
target : 'web' ,
entry : {
diagram : './src/diagram/webview/index.ts' ,
} ,
output : {
path : path . resolve ( _ _dirname , 'out' ) ,
filename : '[name]/[name].js' ,
} ,
resolve : {
// support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader
extensions : [ '.ts' , '.tsx' , '.js' , '.jsx' ] ,
} ,
module : {
rules : [
{
test : /\.(ts|tsx)$/ ,
exclude : /node_modules/ ,
use : [
{
loader : 'ts-loader' ,
} ,
] ,
} ,
] ,
} ,
plugins : [
new CopyPlugin ( [
{ from : 'src/diagram/webview/index.html' , to : 'diagram/index.html' } ,
] ) ,
] ,
} ;
module . exports = [ config , webviewConfig ] ;