Сбой множественной конфигурации Webpack - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь использовать две конфигурации с веб-пакетом, но мне не удается это сделать любым способом, я всегда получаю это сообщение:

TypeError: Невозможно прочитать свойство 'tap' из неопределенного

В документах говорится, что он поддерживается, даже с массивом функций:

Вместо экспорта одного объекта / функции конфигурацииВы можете экспортировать несколько конфигураций (начиная с версии 3.1.0 поддерживается несколько функций).При запуске веб-пакета все конфигурации создаются.

Я использую webpack@4.31.0 и webpack-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)
    ...

И это мой код ( полный код здесь ):

// @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',
    //...
  };
}

Полный код здесь .

Обновление:

Похожие проблемы: https://github.com/webpack/webpack-cli/issues/570#issuecomment-499093581

1 Ответ

1 голос
/ 04 июня 2019

Попробуйте использовать другую версию webpack

"webpack": "4.20.2"

Я видел, что некоторые люди сообщают, что у них есть этопроблема, когда они используют webpack 4.30 и выше

Также попробуйте использовать HtmlWebPackPlugin с версией выше "4.0.0-alpha"

Затем удалите package-lock.json и node_modules, затем запустите npm iснова

Обновление:

Обязательно запустите --watch в командной строке

...