'use strict'; const path = require('path'); const nodeExternals = require('webpack-node-externals'); const CleanWebpackPlugin = require("clean-webpack-plugin"); module.exports = function(env, argv) { env = env || {}; const production = !!env.production; const plugins = [new CleanWebpackPlugin(["out"])]; return { entry: './src/extension.ts', mode: production ? 'production' : 'development', target: 'node', devtool: !production ? 'eval-source-map' : undefined, output: { libraryTarget: 'commonjs2', filename: 'extension.js', path: path.resolve(__dirname, 'out') }, resolve: { extensions: ['.tsx', '.ts', '.js'] }, externals: [nodeExternals()], module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/ } ] }, plugins: plugins }; };