const path = require('path'); // import * as path from "path"; const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); // import * as ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; // export default { module.exports = { entry: path.resolve(__dirname, 'src', 'frontend', 'index.tsx'), module: { rules: [ { test: /\.tsx?$/, use: 'ts-loader', exclude: /node_modules/, }, { test: /\.css$/i, use: ["style-loader", "css-loader"], }, { test: /\.svg$/, use: 'url-loader' }, ], }, resolve: { extensions: ['.tsx', '.ts', '.js'], fallback: { // allow using absolute paths when referring to 'onion' library. onion: path.resolve(__dirname, 'src', 'onion'), util: path.resolve(__dirname, 'src', 'onion', 'mock_node_util.ts'), // The following are needed to make NodeJS' 'crypto' module work in the browser: // Should probably migrate to the SubtleCrypto Web API crypto: require.resolve('crypto-browserify'), stream: require.resolve('stream-browserify'), buffer: require.resolve('buffer'), }, }, output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, devServer: { static: path.resolve(__dirname, 'dist'), port: 9000, }, plugins: [ new ForkTsCheckerWebpackPlugin() ] };