const path = require('path'); const webpack = require('webpack'); const PATHS = { entryPoint: path.resolve(__dirname, 'src/index.ts'), bundles: path.resolve(__dirname, 'bundles'), }; const config = { // These are the entry point of our library. We tell webpack to use // the name we assign later, when creating the bundle. We also use // the name to filter the second entry point for applying code // minification via UglifyJS entry: { stomp: [PATHS.entryPoint], }, // The output defines how and where we want the bundles. The special // value `[name]` in `filename` tell Webpack to use the name we defined above. // We target a UMD and name it MyLib. When including the bundle in the browser // it will be accessible at `window.MyLib` output: { path: PATHS.bundles, filename: '[name].umd.js', libraryTarget: 'umd', library: 'StompJs', globalObject: `typeof self !== 'undefined' ? self : this`, umdNamedDefine: true, }, mode: 'development', // Add resolve for `tsx` and `ts` files, otherwise Webpack would // only look for common JavaScript file extension (.js) resolve: { extensions: ['.ts', '.tsx', '.js'], }, // Activate source maps for the bundles in order to preserve the original // source when the user debugs the application devtool: 'inline-source-map', module: { rules: [ { test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules/, }, ], }, }; module.exports = config;