Неверный объект конфигурации. Webpack был инициализирован с использованием конфигурации
С сегодняшнего утра с Angular CLI 1.0.0-beta.14
я ng new try3
и ng serve
и получим следующую ошибку:
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration has an unknown property 'tslint'. These properties are valid:
object { amd?, bail?, cache?, context?, devServer?, devtool?, entry, externals?, loader?, module?, name?, dependencies?, node?, output?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? }
- configuration.module has an unknown property 'preLoaders'. These properties are valid:
object { rules?, loaders?, noParse?, unknownContextRequest?, unknownContextRegExp?, unknownContextRecursive?, unknownContextCritical?, exprContextRequest?, exprContextRegExp?, exprContextRecursive?, exprContextCritical?, wrappedContextRegExp?, wrappedContextRecursive?, wrappedContextCritical? }
Options affecting the normal modules (`NormalModuleFactory`).
- configuration.node.global should be a boolean.
- configuration.resolve has an unknown property 'root'. These properties are valid:
object { modules?, descriptionFiles?, plugins?, mainFields?, aliasFields?, mainFiles?, extensions?, enforceExtension?, moduleExtensions?, enforceModuleExtension?, alias?, symlinks?, unsafeCache?, cachePredicate?, fileSystem?, resolver? }
- configuration.resolve.extensions[0] should not be empty.
WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration has an unknown property 'tslint'. These properties are valid:
object { amd?, bail?, cache?, context?, devServer?, devtool?, entry, externals?, loader?, module?, name?, dependencies?, node?, output?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? }
- configuration.module has an unknown property 'preLoaders'. These properties are valid:
object { rules?, loaders?, noParse?, unknownContextRequest?, unknownContextRegExp?, unknownContextRecursive?, unknownContextCritical?, exprContextRequest?, exprContextRegExp?, exprContextRecursive?, exprContextCritical?, wrappedContextRegExp?, wrappedContextRecursive?, wrappedContextCritical? }
Options affecting the normal modules (`NormalModuleFactory`).
- configuration.node.global should be a boolean.
- configuration.resolve has an unknown property 'root'. These properties are valid:
object { modules?, descriptionFiles?, plugins?, mainFields?, aliasFields?, mainFiles?, extensions?, enforceExtension?, moduleExtensions?, enforceModuleExtension?, alias?, symlinks?, unsafeCache?, cachePredicate?, fileSystem?, resolver? }
- configuration.resolve.extensions[0] should not be empty.
at webpack (/home/jan/src/fm-repos/try3/node_modules/webpack/lib/webpack.js:16:9)
at Class.run (/home/jan/src/fm-repos/try3/node_modules/angular-cli/tasks/serve-webpack.js:23:27)
at /home/jan/src/fm-repos/try3/node_modules/angular-cli/commands/serve.js:84:26
at process._tickCallback (internal/process/next_tick.js:103:7)
В последний раз я ng new
проект был несколько дней назад - в этот момент он работал с файлом. Здесь моя среда:
angular-cli: 1.0.0-beta.14
node: 6.5.0
os: linux x64
Ответы
Ответ 1
Обновить Angular CLI до 1.0.0-beta.15
или лучше:
npm uninstall angular-cli -g
npm cache clean
npm install [email protected] -g
который создает рабочие леса:
ng new try4
cd try4
ng serve
Если у вас есть существующий проект, построенный с предыдущими версиями CLI Angular, вам необходимо обновить:
rm -rf node_modules dist tmp
npm install [email protected] --save-dev
ng init
и внимательно просмотрите каждое из различий в каждом файле.
Корневая причина. Как только версия CLI Angular работает, она должна не перестать работать, конечно. К сожалению, angular-cli 1.0.0-beta.14
имеет зависимость "каретки" от webpack: ^2.1.0-beta.22
- обратите внимание на ^
. Вчера webpack
выпустил 2.1.0-beta.23
, который не совместим с angular-cli 1.0.0-beta.14
, поэтому из-за каретки (^
) развернутые версии angular-cli 1.0.0-beta.14
перестали работать. Чтобы решить эту проблему, вчера был выпущен angular-cli 1.0.0-beta.15
с фиксированной зависимостью webpack: 2.1.0-beta.22
- обратите внимание на отсутствие ^
- таким образом, чтобы избежать взлома обновления до webpack. Подробнее см. https://github.com/angular/angular-cli/issues/2234.
Работа с проектами. Если вы не можете или не сможете обновить CLI Angular, вы можете обойти зависимость webpack от пользователя, добавив фиксированную зависимость веб-пакета к своему собственному проект. Конечно, вам придется поддерживать эту зависимость в будущем:
npm install [email protected] --save-dev
Выберите этот обход, если вы не можете обновить CLI Angular.
Ответ 2
Я сейчас столкнулся с этой проблемой, выполнив проект ng2.0.0
решение заключалось в том, чтобы переустановить веб-пакет.
npm uninstall webpack --save-dev
npm install [email protected] --save-dev
это, вероятно, скоро будет исправлено на package.json, который генерирует angular-cli 1.0.0-beta.15
.
это исправление должно решить проблему для любых существующих проектов.
Ответ 3
Вы используете бета-версию webpack2?
Если да, у вас не может быть пользовательских свойств в конфигурации сейчас.
вам нужно добавить свои настраиваемые свойства с помощью плагинов:
plugins: {
new webpack.LoaderOptionsPlugin({
options: {
postcss: ...
}
})
}
Ответ 4
npm удалить webpack --save-dev
за которым следует
npm install [email protected] --save-dev
Затем вы снова сможете gulp. Исправлена проблема для меня.
Ответ 5
Также убедитесь, что ваш объект loaders
находится под module
e.g
module: {
loaders: [{test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}]
}
Это решило проблему для меня
Ответ 6
Вы можете попробовать выполнить следующие команды:
npm uninstall angular-cli -g
npm cache clean
npm install webpack // Move webpack to latest
Ответ 7
Пожалуйста, проверьте, установлен ли ts-loader в вашем проекте. Это необходимо и нужно для загрузки файлов .ts.