/ webpack.rules.ts
webpack.rules.ts
 1  import type { ModuleOptions } from 'webpack';
 2  
 3  export const rules: Required<ModuleOptions>['rules'] = [
 4    // Add support for native node modules
 5    {
 6      // We're specifying native_modules in the test because the asset relocator loader generates a
 7      // "fake" .node file which is really a cjs file.
 8      test: /native_modules[/\\].+\.node$/,
 9      use: 'node-loader',
10    },
11    {
12      test: /[/\\]node_modules[/\\].+\.(m?js|node)$/,
13      parser: { amd: false },
14      use: {
15        loader: '@vercel/webpack-asset-relocator-loader',
16        options: {
17          outputAssetBase: 'native_modules',
18        },
19      },
20    },
21    {
22      test: /\.tsx?$/,
23      exclude: /(node_modules|\.webpack)/,
24      use: {
25        loader: 'ts-loader',
26        options: {
27          transpileOnly: true,
28        },
29      },
30    },
31  ];