找不到模块:错误:无法解析 webpack 中的“util”

Gou*_*msa 16 webpack

当我运行脚本时,它向我显示了这个错误 这是错误:

BREAKING CHANGE:webpack<5使用,以包括polyfills用于node.js由默认核心模块。这已不再是这种情况。验证您是否需要此模块并polyfill为其配置一个。

如果你想包含一个polyfill,你需要: 添加一个回退 ' "util"resolve.fallback : { : require.resolve(" util/") }', install 'util'; 如果不想包含 polyfill,可以使用这样的空模块:"util"resolve.fallback : { : false } @ ./node_modules/ webpack/lib/index.js 74:30-50 77:9-29 @ ./src/googlesheets.js 21:16-34 @ ./src/index.js 1:0-44 2:0-10

Ell*_*ica 28

对我来说,这已经足够了yarn add util(或者,npm install util)。我不必将其添加到任何其他文件中。


小智 18

主要问题在于 Webpack 5。它没有预加载 Node.js 的 polyfill。我看到这个问题可以帮助你。https://github.com/webpack/webpack/issues/11282

要解决它:npm install util,并将其添加到webpack.config.js

module.exports = {
  // ...
  resolve: {
      fallback: {
        util: require.resolve("util/")
      }
  }
  // ...
};
Run Code Online (Sandbox Code Playgroud)

  • @Th3Cod3-先生,但是在 Angular webpack.config.js 中不存在..告诉我还有其他 Angular 文件吗? (3认同)
  • @KapilSoni 默认的 Angular 构建器不允许修改 webpack 配置。您需要使用不同的构建器,例如 https://www.npmjs.com/package/@angular-builders/custom-webpack (2认同)

Ale*_*nes 14

如果您的代码是多目标(节点和浏览器),请遵循其他答案。如果你的代码只在 nodejs 上运行,这就足够了:

    module.exports = {
     target: "node", // Or "async-node"
     mode: "production" /* or "development", or "none" */
     /* ... */
    }
Run Code Online (Sandbox Code Playgroud)


Sim*_*MSR 9

如果你没有util,甚至不使用webpack.config.ts

  1. npm install util
  2. 对您的进行以下更改tsconfig.json
    "angularCompilerOptions": {
         "types" : ["node"]
    }
Run Code Online (Sandbox Code Playgroud)