Webpack-cli — TypeError: не удается преобразовать неопределенный или нулевой в объект

#javascript #npm #webpack #yarnpkg

#javascript #npm #webpack #yarnpkg

Вопрос:

Я пытаюсь построить yarn build

но у меня следующая ошибка

     yarn run v1.22.4
$ webpack --progress --config resources/assets/build/webpack.config.js


  wp-contentthemesportfolionode_moduleswebpack-clibincli.js:93
                                    throw err;
                                    ^

TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at mergeTo (wp-contentthemesportfolionode_moduleswebpack-mergedistmerge-with.js:30:24)
    at wp-contentthemesportfolionode_moduleswebpack-mergedistmerge-with.js:23:15
    at Array.forEach (<anonymous>)
    at Object.mergeWith [as default] (wp-contentthemesportfolionode_moduleswebpack-mergedistmerge-with.js:22:10)
    at mergeWithOptions (wp-contentthemesportfolionode_moduleswebpack-mergedistindex.js:71:39)
  

в моем config.js im импортирует webpack-cli

 const { merge } = require('webpack-merge');
  

Вот версия webpacks

  "webpack": "~4.44.2",
"webpack-assets-manifest": "^3.1.1",
"webpack-cli": "^3.3.12",
"webpack-merge": "~5.1.4",
  

эта проблема возникла после обновления версии webpack-cli

Комментарии:

1. Разве это не должно быть — const merge = require('webpack-merge');

2. Я изменил его на это, но теперь у меня другая ошибка yarn run v1.22.4 $ webpack --progress --config resources/assets/build/webpack.config.js themesportfolionode_moduleswebpack-clibincli.js:93 throw err; ^ TypeError: merge is not a function at Object.<anonymous> (themesportfolioresourcesassetsbuildconfig.js:7:20) at Module._compile (themesportfolionode_modulesv8-compile-cachev8-compile-cache.js:194:30)

Ответ №1:

Все, что он говорит, это то, что он ожидает объект некоторого типа, но он имеет значение null, поскольку объекту может быть присвоено значение null. Код ожидает объект некоторого типа, но он либо undefined, либо null . Этот объект также может быть массивом, который не содержит конкретного элемента, который он ищет, потому что он слишком короткий, например, или массив не существует для начала. Поскольку вы обновили версию weback cli, вам, вероятно, пришлось обновить что-то еще, чтобы она работала должным образом, но вы этого не сделали, возможно, именно поэтому отсутствует какой-то код для инициализации этого объекта или массива.

Эта ошибка возникает в файле: wp-content themes portfolio node_modules webpack-cli bin cli.js:93 в строке 93 файла, если вы можете проверить эту строку и отобразить ее, было бы здорово.

Также посмотрите на другие упомянутые файлы: ошибка типа: невозможно преобразовать неопределенный или нулевой в объект в функции.ключи () в mergeTo (wp-contentthemesportfolionode_moduleswebpack-mergedistmerge-with.js:30:24) в wp-contentthemesportfolionode_moduleswebpack-mergedistmerge-with.js:23:15в Array.forEach () в Object.mergeWith [по умолчанию] (wp-contentthemesportfolionode_moduleswebpack-mergedistmerge-with.js:22:10) в mergeWithOptions (wp-contentthemesportfolionode_moduleswebpack-mergedistindex.js:71:39)

Возможно, вы объединяете неправильные версии cli webpack вместе.

Комментарии:

1. Вот что происходит в cli.js:93 if (err.name !== "ValidationError") { throw err; }