Je rencontre un problème qui, selon moi, est lié à mon package.json ou à la version de la plate-forme cordova.
Lorsque j'essaie d'exécuter un ionic state restore
il renvoie la sortie suivante:
Attempting to restore your Ionic application from package.json
Restoring Platforms
cordova platform add ios
cordova platform add Android
Restore platforms is complete
Restoring Plugins
cordova plugin add cordova-plugin-whitelist
cordova plugin add cordova-plugin-console
cordova plugin add cordova-plugin-statusbar
cordova plugin add cordova-plugin-device
cordova plugin add cordova-plugin-splashscreen
cordova plugin add ionic-plugin-keyboard
cordova plugin add cordova-plugin-network-information
cordova plugin add cordova-plugin-file
cordova plugin add cordova-plugin-compat
cordova plugin add cordova-plugin-media
cordova plugin add https://github.com/AubreyHewes/cordova-background-audio.git
Caught exception:
undefined
Mind letting us know? https://github.com/driftyco/ionic-cli/issues
Et lorsque j'essaie d'exécuter la commande qui a échoué (cordova plugin add https://github.com/AubreyHewes/cordova-background-audio.git
), il renvoie l'erreur suivante:
Error: Failed to fetch plugin git+https://github.com/AubreyHewes/cordova-background-audio.git via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Failed to get absolute path to installed module
Je ne comprends pas pourquoi cela dit que c'est un problème de connexion, car ma connexion Internet fonctionne très bien. L'URL du plugin est également correcte.
Infos sur mon environnement:
Cordova CLI: 7.0.0
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
ios-deploy version: 1.9.0
ios-sim version: 5.0.10
OS: OS X El Capitan
Node Version: v7.0.0
Xcode version: Xcode 8.1 Build version 8B62
J'arrache mes cheveux pour ce problème. Avez-vous une idée de ce qui peut provoquer cela?
Mon contenu package.json:
{
"name": "paranaiba-app",
"version": "1.1.1",
"description": "paranaiba-app: An Ionic project",
"dependencies": {
"cordova-Android": "^6.2.3",
"cordova-ios": "^4.4.0",
"cordova-plugin-compat": "~1.1.0",
"cordova-plugin-console": "~1.0.6",
"cordova-plugin-device": "~1.1.5",
"cordova-plugin-file": "~4.3.2",
"cordova-plugin-media": "~2.4.1",
"cordova-plugin-music-controls": "git+https://github.com/homerours/cordova-music-controls-plugin.git",
"cordova-plugin-network-information": "~1.3.2",
"cordova-plugin-splashscreen": "~4.0.2",
"cordova-plugin-statusbar": "~2.2.2",
"cordova-plugin-whitelist": "~1.3.2",
"gulp": "^3.5.6",
"gulp-concat": "^2.2.0",
"gulp-minify-css": "^0.3.0",
"gulp-rename": "^1.2.0",
"gulp-sass": "^2.0.4",
"ionic-plugin-keyboard": "~2.2.1",
"nl.kingsquare.cordova.background-audio": "git+https://github.com/AubreyHewes/cordova-background-audio.git",
"phonegap-plugin-Push": "~1.8.4"
},
"devDependencies": {
"bower": "^1.3.3",
"gulp-util": "^2.2.14",
"shelljs": "^0.3.0"
},
"cordovaPlugins": [
"cordova-plugin-whitelist",
"cordova-plugin-console",
"cordova-plugin-statusbar",
"cordova-plugin-device",
"cordova-plugin-splashscreen",
"ionic-plugin-keyboard",
"cordova-plugin-network-information",
"cordova-plugin-file",
"cordova-plugin-compat",
"cordova-plugin-media",
{
"locator": "https://github.com/AubreyHewes/cordova-background-audio.git",
"id": "nl.kingsquare.cordova.background-audio"
},
{
"locator": "https://github.com/homerours/cordova-music-controls-plugin",
"id": "cordova-plugin-music-controls"
}
],
"cordovaPlatforms": [
{
"platform": "ios",
"version": "",
"locator": "ios"
},
{
"platform": "Android",
"version": "",
"locator": "Android"
}
],
"cordova": {
"platforms": [
"Android",
"ios"
],
"plugins": {
"phonegap-plugin-Push": {
"SENDER_ID": "XXXX"
},
"cordova-plugin-whitelist": {},
"cordova-plugin-console": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"ionic-plugin-keyboard": {},
"cordova-plugin-network-information": {},
"cordova-plugin-file": {},
"cordova-plugin-compat": {},
"cordova-plugin-media": {},
"nl.kingsquare.cordova.background-audio": {},
"cordova-plugin-music-controls": {}
}
}
}
Merci!
J'ai reçu le même message d'erreur lors de l'ajout d'un plugin local: Error: Failed to get absolute path to installed module
.
Utilisation de l'option --nofetch
([email protected]) l'a corrigé:
cordova plugin add ../my-plugin --nofetch
Selon https://github.com/Apache/cordova-cli/blob/master/RELEASENOTES.md : utilisez --nofetch
flag pour récupérer les plateformes et les plugins en utilisant l'ancienne logique de récupération.
Edit: Cette réponse est obsolète. Veuillez utiliser à la place réponse de uutrecht .
J'ai eu le même problème en ce moment. Je l'ai corrigé en rétrogradant cordova de v7.0.0 à v6.5.0
npm i -g [email protected]
Ils ont changé la façon dont ils récupèrent les plugins. https://cordova.Apache.org/news/2017/05/04/cordova-7.html
Supprimez le plugin, que vous avez installé à partir du local, du config.xml, du package.json et du package-lock.json.
Réessayez ensuite. Je travaille pour la plupart des cas.
{
"name": "io.cordova.hellocordova",
"version": "1.0.0",
"displayName": "HelloCordova",
"cordova": {
"platforms": [
"Android"
],
"plugins": {
"cordova-plugin-whitelist": {},
"com-example-plugin": {}
}
},
"dependencies": {
"cordova-Android": "^6.2.3",
"cordova-plugin-template": "file:../cordova-testplugin", // <-- remove this line
"cordova-plugin-whitelist": "^1.3.2"
}
}
--nofetch
L'option a été supprimée dans Cordova version 8.0.0: https://issues.Apache.org/jira/browse/CB-13055
Si vous avez déjà installé Cordova 8.x.x, vous pouvez le rétrograder vers la version 7.1.0 puis utiliser le --nofetch
option.
Exécutez la commande suivante pour rétrograder Cordova vers 7.1.0:
npm install -g [email protected]
Si la commande ci-dessus ne fonctionne pas, essayez d'abord de désinstaller cordova, puis installez cordova version 7.1.0:
npm uninstall -g cordova
npm install -g [email protected]
Ensuite, vérifiez la version Cordova pour confirmer si elle est déclassée ou non:
cordova --version
Je l'ai corrigé en exécutant la commande suivante (en utilisant cordova v 8.1.2):
ionic cordova plugin rm PLUGIN_NAME && ionic cordova plugin add PLUGIN_NAME
Je pense que le problème est l'id du package.json du plugin différent avec le nom du dépôt git
par exemple: id de package.json => com.abc.cde l'url git doit être https://github.com/ {nom d'utilisateur} /com.abc.cde.git
Cette réponse s'applique à: Cordova 8.1.2 ([email protected])
Dans mon cas, cela avait à voir avec git+https://...
Une partie de l'url, répertoriée dans package.json
Sous les dépendances. Le changer en https://...
A fait l'affaire.
Dans le cordova src, ils utilisent un module cordova-fetch
. Dans la fonction getPath
l'erreur est levée. Il peut appeler searchDirForTarget
qui à son tour appelle le module is-url
. La cible, par ex. l'url est validée ici et git+https://...
renvoie invalide car il ne correspond pas à /^(?:\w+:)?\/\/(\S+)$/
.