webpack.config.js 960 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. const path = require('path');
  2. module.exports = {
  3. entry: path.resolve(__dirname, 'src', 'frontend', 'index.tsx'),
  4. module: {
  5. rules: [
  6. {
  7. test: /\.tsx?$/,
  8. use: 'ts-loader',
  9. exclude: /node_modules/,
  10. },
  11. {
  12. test: /\.css$/i,
  13. use: ["style-loader", "css-loader"],
  14. },
  15. ],
  16. },
  17. resolve: {
  18. extensions: ['.tsx', '.ts', '.js'],
  19. fallback: {
  20. util: path.resolve(__dirname, 'src', 'onion', 'mock_node_util.ts'),
  21. // The following are needed to make NodeJS' 'crypto' module work in the browser:
  22. // Should probably migrate to the SubtleCrypto Web API
  23. crypto: require.resolve('crypto-browserify'),
  24. stream: require.resolve('stream-browserify'),
  25. buffer: require.resolve('buffer'),
  26. },
  27. },
  28. output: {
  29. filename: 'bundle.js',
  30. path: path.resolve(__dirname, 'dist'),
  31. },
  32. devServer: {
  33. static: path.resolve(__dirname, 'dist'),
  34. port: 9000,
  35. },
  36. };