无法读取 ExternalModuleFactoryPlugin.js:30 处未定义的属性“tapAsync”

Sar*_*lai 10 javascript node.js reactjs webpack storybook

我正在开发一个反应项目,我想设置故事书。我收到以下错误,我无法使用 webpack-5-beta-14 更新我的故事书(5.3.7)。

/node_modules/webpack/lib/ExternalModuleFactoryPlugin.js:30

normalModuleFactory.hooks.factorize.tapAsync(
                                   ^

TypeError: Cannot read property 'tapAsync' of undefined
Run Code Online (Sandbox Code Playgroud)

我控制台记录了 normalModuleFactory 提供的钩子,这是我得到的,

{ resolver:
   SyncWaterfallHook {
     _args: [ 'resolver' ],
     taps: [ [Object] ],
     interceptors: [],
     call: [Function: lazyCompileHook],
     promise: [Function: lazyCompileHook],
     callAsync: [Function: lazyCompileHook],
     _x: undefined },
  factory:
   SyncWaterfallHook {
     _args: [ 'factory' ],
     taps: [ [Object] ],
     interceptors: [],
     call: [Function: lazyCompileHook],
     promise: [Function: lazyCompileHook],
     callAsync: [Function: lazyCompileHook],
     _x: undefined },
  beforeResolve:
   AsyncSeriesWaterfallHook {
     _args: [ 'data' ],
     taps: [ [Object] ],
     interceptors: [],
     call: undefined,
     promise: [Function: lazyCompileHook],
     callAsync: [Function: lazyCompileHook],
     _x: undefined },
  afterResolve:
   AsyncSeriesWaterfallHook {
     _args: [ 'data' ],
     taps: [ [Object], [Object] ],
     interceptors: [],
     call: undefined,
     promise: [Function: lazyCompileHook],
     callAsync: [Function: lazyCompileHook],
     _x: undefined },
  createModule:
   SyncBailHook {
     _args: [ 'data' ],
     taps: [],
     interceptors: [],
     call: [Function: lazyCompileHook],
     promise: [Function: lazyCompileHook],
     callAsync: [Function: lazyCompileHook],
     _x: undefined },
  module:
   SyncWaterfallHook {
     _args: [ 'module', 'data' ],
     taps: [],
     interceptors: [],
     call: [Function: lazyCompileHook],
     promise: [Function: lazyCompileHook],
     callAsync: [Function: lazyCompileHook],
     _x: undefined }
Run Code Online (Sandbox Code Playgroud)

normalModuleFactory 对象不包含任何称为 factorize 的钩子,它只有工厂钩子。我去检查了 webpack github repo,它有 factorize 钩子。我不知道它在哪里被覆盖。任何意见都将帮助我摆脱这个问题。

Sar*_*lai 12

我的问题是,我使用的是 webpack 5 beta,故事书使用的是 webpack 4,它是 webpack 4 和 5 之间的子句。

  • 给自己答案! (2认同)
  • 您能分享一下您如何更改配置吗? (2认同)