Depuis la dernière mise à jour de Cordova en v8, je ne peux plus rien construire sur Mac .
(node 626) UnhandledPromiseRejectionWarning: Error: Cannot find module '../cordova/platform_metadata'
J'ai essayé ce qui était suggéré dans this post mais je reçois la même erreur.
J'ai ensuite fait un commentaire et il semble que le plug-in requis pour compiler pour iOS ne fonctionne pas bien
Executing script found in plugin cordova-plugin-Swift-support for hook "after_prepare": plugins/cordova-plugin-Swift-support/src/add-Swift-support.js
Resolving module name for cordova-lib/src/cordova/platform_metadata => ../cordova/platform_metadata
(node:599) UnhandledPromiseRejectionWarning: Unhandled promise rejection
(rejection id: 1): Error: Cannot find module '../cordova/platform_metadata'
(node:599) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.
C'était un bug dans cordova-plugin-add-Swift-support
, il suffit de le mettre à jour avec la dernière version (1.7.1)
cordova plugin rm cordova-plugin-add-Swift-support
cordova plugin add cordova-plugin-add-Swift-support
vous devez rétrograder cordova 7.1.0 jusqu'à ce que ce problème soit résolu. Faire ceci:
npm uninstall -g cordova
npm install -g [email protected]
cordova platform remove ios
cordova platform add ios
Si vous exécutez un projet ionique nécessitant le plug-in Swift, vous devez ajouter le drapeau --force:
ionic cordova plugin rm cordova-plugin-add-Swift-support --force
Puis lancez:
ionic cordova plugin add cordova-plugin-add-Swift-support
Cela m'est juste arrivé (avec ionique). Dans Ionic, le problème provient d'un plugin ou d'un node_module qui utilise toujours cordova/platform_metadata, qui est obsolète.
Si vous utilisez Linux, dans votre répertoire de projet, essayez ceci dans la commande Shell:
grep -iRn 'platform_metadata'
Dans mon cas, c’était le plugin cordova-plugin-add-Swift-support qui l’utilisait encore, et je n’utilisais même pas ce plugin dans mon projet; Problème résolu. Le problème semble se poser lorsqu'un plugin appelle un module qui n'existe plus. Vous devez donc supprimer ce plugin ou le mettre à jour.
Avec Ionic 3 et Cordova 8.0.0 project . Voici les étapes
J'ai rencontré le même problème, puis j'ai mis à niveau Cordova en version 7.1.0 pour moi
De mon projet ionique j'ai fait (bash):
grep -r 'platform_metadata' .
et a constaté que j'avais un plugin appelé cordova-plugin-Swift-support
était le coupable. Je l'ai enlevé, puis j'ai ajouté cordova-plugin-add-Swift-support
, et tout a bien fonctionné avec cordova 8.0.0.