首页 > 解决方案 > 如何修复 webpack 错误:在 node.js (webpackEmptyContext) 上找不到模块

问题描述

webpack.config.js 的是:

const path = require('path');

module.exports = {
  entry: './app.ts',
  target: 'node',
  node: {
    __dirname: true
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
    ],
  },
  resolve: {
    extensions: [ '.tsx', '.ts', '.js' ],
  },
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
};

当我构建我的项目并运行它时,我收到以下错误:

(node:51071) UnhandledPromiseRejectionWarning: Error: Cannot find module '../gather/gatherers/css-usage'
    at webpackEmptyContext (webpack:///./node_modules/lighthouse/lighthouse-core/config_sync?:2:10)
    at Function.requireGathererFr

此错误是从我正在使用的第 3 方库引发的 - lighthouse

如何解决此错误?

标签: node.jswebpack

解决方案


对于作为节点的目标,您可能必须使用此包webpack-node-externals才能忽略node_module文件夹中的所有模块。然后声明为externals

const nodeExternals = require('webpack-node-externals');

module.exports = {
  externals: [nodeExternals()],
  // ...
};

推荐阅读