webpack.config.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const path = require('path');
  2. module.exports = {
  3. mode: 'production', // 或 'development'
  4. entry: './src/server.ts', // 你的主入口点
  5. target: 'node', // 针对 Node.js,不会打包内置模块如 fs、path 等
  6. module: {
  7. rules: [
  8. {
  9. test: /\.tsx?$/,
  10. use: 'ts-loader',
  11. exclude: /node_modules/,
  12. },
  13. ],
  14. },
  15. resolve: {
  16. extensions: ['.tsx', '.ts', '.js'], // 自动解析确定的扩展
  17. },
  18. output: {
  19. filename: 'app.js', // 输出的打包文件
  20. path: path.resolve(__dirname, 'dist'),
  21. },
  22. externals: {
  23. // 排除有问题的二进制模块和可选依赖
  24. 'kerberos': 'commonjs kerberos',
  25. 'snappy': 'commonjs snappy',
  26. 'bson-ext': 'commonjs bson-ext',
  27. '@mongodb-js/zstd': 'commonjs @mongodb-js/zstd',
  28. 'mongodb-client-encryption': 'commonjs mongodb-client-encryption',
  29. '@napi-rs/snappy-darwin-arm64': 'commonjs @napi-rs/snappy-darwin-arm64',
  30. '@napi-rs/snappy-darwin-x64': 'commonjs @napi-rs/snappy-darwin-x64',
  31. '@napi-rs/snappy-linux-x64-gnu': 'commonjs @napi-rs/snappy-linux-x64-gnu',
  32. '@napi-rs/snappy-linux-x64-musl': 'commonjs @napi-rs/snappy-linux-x64-musl',
  33. '@napi-rs/snappy-linux-arm64-gnu': 'commonjs @napi-rs/snappy-linux-arm64-gnu',
  34. '@napi-rs/snappy-linux-arm64-musl': 'commonjs @napi-rs/snappy-linux-arm64-musl',
  35. '@napi-rs/snappy-linux-arm-gnueabihf': 'commonjs @napi-rs/snappy-linux-arm-gnueabihf',
  36. '@napi-rs/snappy-linux-arm-musleabihf': 'commonjs @napi-rs/snappy-linux-arm-musleabihf',
  37. '@napi-rs/snappy-linux-riscv64-gnu': 'commonjs @napi-rs/snappy-linux-riscv64-gnu',
  38. '@napi-rs/snappy-linux-riscv64-musl': 'commonjs @napi-rs/snappy-linux-riscv64-musl',
  39. '@napi-rs/snappy-linux-ppc64-gnu': 'commonjs @napi-rs/snappy-linux-ppc64-gnu',
  40. '@napi-rs/snappy-linux-s390x-gnu': 'commonjs @napi-rs/snappy-linux-s390x-gnu',
  41. '@napi-rs/snappy-openharmony-arm64': 'commonjs @napi-rs/snappy-openharmony-arm64',
  42. '@napi-rs/snappy-openharmony-x64': 'commonjs @napi-rs/snappy-openharmony-x64',
  43. '@napi-rs/snappy-openharmony-arm': 'commonjs @napi-rs/snappy-openharmony-arm',
  44. '@napi-rs/snappy-wasm32-wasi': 'commonjs @napi-rs/snappy-wasm32-wasi',
  45. '@napi-rs/snappy-freebsd-x64': 'commonjs @napi-rs/snappy-freebsd-x64',
  46. '@napi-rs/snappy-freebsd-arm64': 'commonjs @napi-rs/snappy-freebsd-arm64'
  47. },
  48. // 添加忽略警告的配置
  49. ignoreWarnings: [
  50. /Critical dependency: the request of a dependency is an expression/,
  51. /Module not found: Error: Can't resolve 'bson-ext'/,
  52. /Package path .* is not exported from package/
  53. ],
  54. };