- 'use strict';
- const webpack = require('webpack');
- const path = require('path');
- const nodeExternals = require('webpack-node-externals');
- const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
-
- module.exports = function(env, argv) {
- if (env === undefined) {
- env = {};
- }
-
- const minify = !!env.production;
- const sourceMaps = !env.production;
-
- const plugins = [
- new webpack.optimize.ModuleConcatenationPlugin(),
- new UglifyJsPlugin({
- parallel: true,
- sourceMap: sourceMaps,
- uglifyOptions: {
- ecma: 8,
- compress: minify ? {} : false,
- mangle: minify,
- output: {
- beautify: !minify,
- comments: false
- },
- sourceMap: sourceMaps,
- }
- })
- ];
-
- return {
- entry: './src/extension.ts',
- target: 'node',
- output: {
- libraryTarget: 'commonjs2',
- filename: 'extension.js',
- path: path.resolve(__dirname, 'out')
- },
- resolve: {
- extensions: ['.ts']
- },
- externals: [
- nodeExternals()
- ],
- devtool: sourceMaps ? 'inline-source-map' : false,
- module: {
- rules: [
- {
- test: /\.ts$/,
- use: [{ loader: 'ts-loader' }],
- exclude: /node_modules/
- }
- ]
- },
- plugins: plugins
- };
- };
|