Webpack.validateSchema не является функцией
Webpack неожиданно бросает эту ошибку:
TypeError: webpack.validateSchema не является функцией
Все отлично работало в пятницу, не работая сегодня. Никаких новых коммитов, чтобы учиться с пятницы.
Обрезанный NPM, который не работал, удалил папку NPM и переустановил, без кубиков. Проверено на предыдущие ветки, которые не были переустановлены от Мастера более недели. Тем не менее.
У кого-нибудь есть идея?
Ответы
Ответ 1
Похож на ошибку npm, так как [email protected]
требует [email protected]^2.1.0-beta.26
, но npm не удалось установить его.
Самый простой способ избежать проблемы без обновления слишком много - это изменить зависимость в package.json для
"webpack-dev-server": "2.1.0-beta.10",
Вместо чего-то вроде
"webpack-dev-server": "^2.1.0-beta.9",
"^" char перед тем, как версия говорит "совместима с". Удаление его точно соответствует версии.
Не забудьте запустить npm install
или npm update
после.
Ответ 2
Сегодня я столкнулся с этой проблемой практически в то же время, что и вы, оказалось, что веб-пакет был обновлен снова.
Вот что я сделал, чтобы исправить это:
Сначала я запустил npm install
и npm update
, чтобы увидеть результат. Я выполнил обе эти команды, потому что у npm есть странный способ сообщать о неудовлетворенных зависимостях, иногда это неправильно, и когда вы повторно запускаете npm update
или npm install
, вы поймете, что неудовлетворенные зависимости больше не являются проблемой.
После выполнения этих команд я заметил, что единственным оставшимся сообщением было предупреждение:
npm WARN [email protected] requires a peer of [email protected]^2.1.0-beta.26 but none was installed.
Чтобы избавиться от этого, я изменил свой файл package.json
на чтение "webpack": "2.1.0-beta.26"
вместо "webpack": "2.1.0-beta.25"
и запустил еще один npm install
.
После этого я получил еще одну ошибку, когда попытался запустить npm start
, в котором указано, что возникла проблема с моим конфигурационным файлом webpack. В моем случае я зашел в конфигурационный файл webpack для моей среды разработки (потому что пока я еще не готов к работе), и я нашел виновника, который был недопустимым параметром, называемым "outputPath".
Я прокомментировал эту строку, и теперь у меня все нормально работает.
Надеюсь, что это поможет, может быть, сейчас просто хак, но, надеюсь, это шаг в правильном направлении.
UPDATE:
Хорошо, поэтому я немного ошибался во всем, что "отлично работает". Оказывается, некоторые из моих погрузчиков работали неправильно; Bootstrap и некоторые другие вещи не загружались должным образом, нарушая мои стили. Поэтому, чтобы вернуть его туда, где я был раньше, я удалил папку node_modules
и запустил npm install
, используя следующее в package.json
:
"webpack": "2.1.0-beta.25",
"webpack-dashboard": "^0.1.8",
"webpack-dev-middleware": "^1.6.1",
"webpack-dev-server": "2.1.0-beta.9",
"webpack-md5-hash": "^0.0.5",
"webpack-merge": "^0.15.0",
Надеемся, что подобные дискуссии помогут нам понять, как правильно двигаться вперед, когда выпущены новые версии веб-пакета.
Ответ 3
У меня тоже такая же ошибка. Я заблокировал свою версию webpack-dev-сервера в файле package.json и предотвратил возникновение ошибки. Это не устраняет проблему с корнем ошибки.
Это версия webpack-dev-сервера, которую я использую, но я уверен, что более поздние версии также работают:
"webpack-dev-server": "2.1.0-beta.9",
Ответ 4
он работал у меня, когда я удаляю ^ и использую точную версию.
Из
"webpack": "2.1.0-beta.25",
"webpack-dev-middleware": "^1.6.1",
"webpack-dev-server": "^2.1.0-beta.9",
"webpack-md5-hash": "^0.0.5",
"webpack-merge": "^0.14.1"
to
"webpack": "2.1.0-beta.25",
"webpack-dev-middleware": "1.6.1",
"webpack-dev-server": "2.1.0-beta.9",
"webpack-md5-hash": "0.0.5",
"webpack-merge": "0.14.1"
Ответ 5
Хорошо, обновите здесь.
Пробовал то, что предложили некоторые из вас, которые, к сожалению, только глубже погрузились в кроличью нору ошибок со сломанными загрузчиками модулей.
В конце я обновился до "webpack": "^2.1.0-beta.26"
и "webpack-dev-server": "^2.1.0-beta.11"
. После этого выяснилось, что произошли изменения, вызвавшие разрыв loaders
- https://github.com/webpack/webpack/releases.
в конфигурации вашего webpack, измените loaders: [ ... ]
, на rules : [ ... ]
и на все объявления загрузчика добавьте "-loader" к строковому значению, как это,
{ test: /node_modules\/i18n-iso-countries\/(de|es|nl|sv)\.js$/, loader: 'null-loader' },
{ test: /\.coffee$/, loader: 'coffee-loader' },
{ test: /\.ts$/, loader: ['awesome-typescript-loader']}
и т.д.
Сделал это для меня. Надеюсь, это поможет кому-то еще столкнуться с проблемой.
Ответ 6
Я заработал, выполнив эту команду:
npm install --save-dev [email protected] [email protected]
Ответ 7
Как объяснено в этой проблеме GitHub, вам необходимо обновить webpack до webpack 2.1.0-beta.26
или более поздней версии. Поскольку последний выпуск v2.1 - это бета-версия .28, вам потребуется [email protected]^2.1.0-beta.28
.
Обратите внимание, что одно из изменений, внесенных в бета .26, заключается в том, что вам нужно указать полное имя загрузчиков, например. замените loader: 'babel'
на loader: 'babel-loader'
.