Javascript 网页包多重配置失败

Javascript 网页包多重配置失败,javascript,node.js,webpack,Javascript,Node.js,Webpack,我尝试在webpack中使用两种配置,但无论以何种方式失败,我都会收到以下消息: TypeError:无法读取未定义的属性“tap” 在中,它表示即使使用一系列函数也支持它: 您可以导出多个配置(自webpack 3.1.0以来支持多个功能),而不是导出单个配置对象/功能。运行webpack时,将生成所有配置 我正在使用webpack@4.31.0和网页包-cli@3.3.2 这就是错误: $ webpack --info-verbosity verbose C:\Users\...\node_

我尝试在webpack中使用两种配置,但无论以何种方式失败,我都会收到以下消息:

TypeError:无法读取未定义的属性“tap”

在中,它表示即使使用一系列函数也支持它:

您可以导出多个配置(自webpack 3.1.0以来支持多个功能),而不是导出单个配置对象/功能。运行webpack时,将生成所有配置

我正在使用
webpack@4.31.0
网页包-cli@3.3.2

这就是错误:

$ webpack --info-verbosity verbose
C:\Users\...\node_modules\webpack-cli\bin\cli.js:281
                                        compiler.hooks.beforeRun.tap("WebpackInfo", compilation => {
                                                                 ^

TypeError: Cannot read property 'tap' of undefined
    at processOptions (C:\Users\...\node_modules\webpack-cli\bin\cli.js:281:31)
    at yargs.parse (C:\Users\...\node_modules\webpack-cli\bin\cli.js:373:3)
    at Object.parse (C:\Users\...\node_modules\yargs\yargs.js:567:18)
    at C:\Users\...\node_modules\webpack-cli\bin\cli.js:49:8
    at Object.<anonymous> (C:\Users\...\node_modules\webpack-cli\bin\cli.js:375:3)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    ...
完整代码

更新:
相关问题:

尝试使用其他版本的webpack

“网页包”:“4.20.2”

我看到有人报告说,当他们使用Webpack4.30及以上版本时,会出现这个问题

还可以尝试使用版本高于“4.0.0-alpha”的HtmlWebPackPlugin

然后删除package-lock.json和node_模块,然后再次运行npm i

更新:


确保在命令行中运行
--watch
,使用
webpack@4.20.2
html网页包-plugin@4.0.0-beta.5
,删除了
节点_模块
纱线。锁定
并再次运行
纱线安装
。我尝试了所有3种方法(函数数组、返回对象数组的函数和对象数组),但都不起作用。错误与我调用网页的方式有关,即
--info verbosity verbose
。这里有更多细节:我在配置中使用了
--info verbosity verbose
和设置
watch:true
。只要把
--watch
放在命令行中,它就工作了。谢谢你的帮助,你没有足够的信息。如果你想改变答案,我会接受的。
// @ts-check
const webpack = require('webpack');
const path = require('path');
const nodeExternals = require('webpack-node-externals');
const HtmlWebPackPlugin = require("html-webpack-plugin");


module.exports = [clientConfig, serverConfig];                    // Error: Array of functions that returns the object fails
//module.exports = env => [clientConfig(env), serverConfig(env)]; // Error: Function that return an array of objects fails
//module.exports = [clientConfig(), serverConfig()];              // Error: Array of objects fails
//module.exports = clientConfig; // OK: The first function alone works
//module.exports = serverConfig; // OK: The other function alone works


function serverConfig(env) {
  return {
    target: 'node',
    // ...
  };
}


function clientConfig(env) {
  return {
    target: 'web',
    //...
  };
}