const path = require('path'); const nodeExternals = require('webpack-node-externals'); const CopyPlugin = require('copy-webpack-plugin'); module.exports = { entry: './src/index.ts', target: 'node', output: { path: path.resolve(__dirname, 'dist'), filename: 'index.js', library: { type: 'commonjs2', }, }, mode: 'production', module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/, }, ], }, externalsPresets: { node: true }, // in order to ignore built-in modules like path, fs, etc. externals: [nodeExternals()], // in order to ignore all modules in node_modules folder resolve: { extensions: ['.tsx', '.ts', '.js'], }, plugins: [ new CopyPlugin({ patterns: [ { from: path.resolve(__dirname, 'src/parse/ts/tsconfig.json'), to: path.resolve(__dirname, 'dist/tsconfig.json'), }, ], }), ], };