A partir de ce matin, avec Angular CLI 1.0.0-beta.14
JE ng new try3
et ng serve
et obtenez l'erreur suivante:
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)
La dernière fois que je ng new
un projet a été lancé il y a quelques jours - à ce moment-là, le fichier fonctionnait. Voici mon environnement:
angular-cli: 1.0.0-beta.14
node: 6.5.0
os: linux x64
Mettre à niveau Angular CLI vers 1.0.0-beta.15
ou mieux:
npm uninstall angular-cli -g
npm cache clean
npm install angular-cli@latest -g
qui génère des échafaudages de travail:
ng new try4
cd try4
ng serve
Si vous avez un projet existant construit avec les versions précédentes de Angular CLI, vous devrez mettre à niveau:
rm -rf node_modules dist tmp
npm install angular-cli@latest --save-dev
ng init
et examinez attentivement chacune des différences dans chaque fichier.
Cause fondamentale : une fois qu'une version de Angular CLI fonctionne, il devrait pas cesser de travailler, bien sûr. Malheureusement, angular-cli 1.0.0-beta.14
a une dépendance "caret" sur webpack: ^2.1.0-beta.22
-- noter la ^
. Hier, webpack
publié 2.1.0-beta.23
qui n'est pas compatible avec angular-cli 1.0.0-beta.14
donc, en raison du curseur (^
), versions déployées de angular-cli 1.0.0-beta.14
ont cessé de travailler. Pour résoudre ce problème, angular-cli 1.0.0-beta.15
_ est sorti hier avec un corrigéwebpack: 2.1.0-beta.22
_ dépendance - notez l’absence du ^
- évitant ainsi la mise à niveau vers Webpack. Voir https://github.com/angular/angular-cli/issues/2234 pour plus de détails.
Contournement du projet : Si vous ne pouvez ou ne voulez pas mettre à niveau Angular CLI, vous pouvez travailler autour de la dépendance de caret webpack en ajoutant une dépendance de webpack fixe à votre propre projet. Vous devrez bien entendu maintenir cette dépendance:
npm install [email protected] --save-dev
Choisissez cette solution de contournement si vous ne pouvez pas mettre à niveau Angular CLI.
Je viens de rencontrer ce problème aujourd'hui avec un projet ng2.0.0 dont la solution consistait à rétrograder WebPack.
npm uninstall webpack --save-dev
npm install [email protected] --save-dev
cela sera probablement corrigé prochainement sur le package.json que angular-cli 1.0.0-beta.15
génère.
ce correctif devrait résoudre le problème sur les projets existants.
Utilisez-vous webpack2 beta?
Si oui, vous ne pouvez pas avoir de propriétés personnalisées dans la configuration maintenant.
vous devez ajouter vos propriétés personnalisées via des plugins:
plugins: {
new webpack.LoaderOptionsPlugin({
options: {
postcss: ...
}
})
}
npm désinstaller webpack --save-dev
suivi par
npm install [email protected] --save-dev
Ensuite, vous devriez être capable de manger à nouveau. Correction du problème pour moi.
Assurez-vous également que votre objet loaders
est sous module
e.g
module: {
loaders: [{test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}]
}
Cela a résolu le problème pour moi