Gibt es einen Unterschied zwischen PhoneGap- und Cordova-Befehlen?

286

Ich habe gerade Phonegap zum ersten Mal installiert und nur die Dokumente durchsucht. Was mich verwirrt, ist die Tatsache, dass einige Dokumente den Befehl "phonegap" und einige "cordova" verwenden.

Android-Plattform-Leitfaden:

$ cordova create hello com.example.hello "HelloWorld"

In der Anleitung zur Befehlszeilenschnittstelle heißt es:

$ phonegap create hello com.example.hello HelloWorld

Gibt es einen Unterschied zwischen diesen beiden Befehlen (was zu unterschiedlichen Dateien und Ordnerstrukturen führt) oder sind sie nur Aliase für dasselbe?

Hexodus
quelle
Weitere Informationen finden Sie in diesem Devgeeks-Artikelformular 2014: TL; DR: Wenn Sie den Cloud-Build-Service bei PhoneGap Build nicht verwenden müssen, verwenden Sie einfach die Cordova CLI-Tools und nicht die PhoneGap-Tools.
Dheeraj Vepakomma
Kein Unterschied in der cmd, wenn Sie sich auf das zitierte Argument beziehen. Der einzige Grund, ein Argument in der cmd-Zeile zu zitieren, besteht darin, dass es Leerzeichen oder bestimmte Zeichen enthält, die für die Terminalsprache von Bedeutung sind. Sie können diesen Zeichen (inkl. Leerzeichen) auch mit einem Backslash entkommen.
ekerner
Jeder hilft
Ali Khan

Antworten:

185

http://phonegap.com/blog/2012/03/19/phonegap-cordova-and-whate28099s-in-a-name/

Ich denke, diese URL erklärt, was Sie brauchen. Phonegap basiert auf Apache Cordova, sonst nichts. Sie können sich Apache Cordova als die Engine vorstellen, die PhoneGap antreibt. Im Laufe der Zeit kann die PhoneGap-Distribution zusätzliche Tools enthalten, weshalb sie sich im Befehl unterscheiden. Sie tun jedoch dasselbe.

BEARBEITEN: Zusätzliche Informationen wurden hinzugefügt, da es um Befehlsunterschiede und die Möglichkeiten von Phonegap geht, während Apache Cordova dies nicht kann oder umgekehrt

Erste Befehlszeilenoption von PhoneGap

http://docs.phonegap.com/de/edge/guide_cli_index.md.html

Apache Cordova-Optionen http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

  1. Da fast die meisten Befehle ähnlich sind. Es gibt nur wenige Unterschiede (Hinweis: Kein Unterschied in der Codebasis)

  2. Adobe kann PhoneGap um zusätzliche Funktionen erweitern, damit diese nicht in Cordova verfügbar sind. Beispiel: Erstellen von Anwendungen aus der Ferne, für die Sie ein Konto unter https://build.phonegap.com benötigen

  3. Für lokale Builds verwendet phonegap cli cordova cli (Link zur Überprüfung: https://github.com/phonegap/phonegap-cli/blob/master/lib/phonegap/util/platform.js )

    Namen der Plattformumgebung. Kartierung:

    'local' => cordova-cli

    'remote' => PhoneGap / Build

Ebenfalls aus folgendem Repository: Module, die Cordova benötigen, sind:

build
create
install
local install
local plugin add , list , remove
run
mode
platform update
run

Welche Cordova nicht enthalten:

remote build
remote install
remote login,logout
remote run
serve
Abhishek
quelle
2
Gut zu wissen, aber dies ist die Frage nach dem Unterschied zwischen den cli-Befehlen (falls vorhanden).
Hexodus
@Hexodus Sie können sich Apache Cordova als die Engine vorstellen, die PhoneGap antreibt. Im Laufe der Zeit kann die PhoneGap-Distribution zusätzliche Tools enthalten, weshalb sie sich im Befehl unterscheiden. Sie tun jedoch dasselbe.
Abhishek
2
Danke Abhishek - das hat meine Frage beantwortet. Ich dachte, dass es etwas mehr mit Phonegap vs Cordova Befehlen geben könnte, die immer noch verwirrend sind ...
Hexodus
6
Warum ist das Dokument so verwirrend? Ich kann $ sudo npm install -g phonegap hier lesen , wo ich die Telefonlücke herunterlade, und dann in der zugehörigen Dokumentation hier , im CLI-Abschnitt, in dem Sie eine neue App einrichten, verwenden sie Cordova wie folgt: $ cordova create hello com.example.hello HelloWorldIch kann keine Beziehung zwischen dem in angegebenen Code finden die dl-Seite und die in den Dokumenten von phonegap angegebenen, die ausschließlich die Cordova-Befehlszeile verwenden (zumindest für den CLI-Abschnitt, in dem Sie beginnen sollen)
Miles M.
1
Die Dokumente sind in gewissem Maße wirklich verwirrend, wie von Miles hervorgehoben. Lehrer: Sie haben Sie gebeten, Phonegap mit npm zu installieren. In den folgenden Dokumenten verwenden jedoch fast alle Befehle Cordova anstelle von Phonegap.
Wmfairuz
78

Späte Antwort, aber ich denke, das könnte nützlich sein.

Es gibt Unterschiede zwischen den beiden cli, phonegapist ein Befehl, der kapselt cordova. In diesem createFall ist der einzige Unterschied eine überschriebene Standard-App

In einigen anderen Fällen ist der Unterschied viel bedeutender. Zum Beispiel phonegap buildkommt mit einer Remote-Build-Funktionalität, während cordova buildnur lokale Builds unterstützt werden.

Eine große Einschränkung, die ich bei PhoneGap festgestellt habe, ist, dass Sie, AFAIK, eine Release-APK nur mit dem PhoneGap Build- Dienst erstellen können . Auf Cordova können Sie mit bauen cordova build android --release.

htulipe
quelle
1
Aber was ist mit "Phonegap Local Build"?
Andreas Kuckartz
1
Trotzdem glaube ich nicht, dass man eine Release-Apk bauen kann. phonegap local build androidund phonegap build androidsind die gleichen Befehle.
htulipe
2
Es scheint , dass es ist möglich , eine lokale Build für eine Veröffentlichung APK auszuführen: chris-allen-lane.com/2012/12/...
donturner
7
Adobe® PhoneGap ™ Build ist ein Webdienst, der PhoneGap-Apps remote für Sie kompiliert und herunterladbare Pakete in einer einfachen Weboberfläche unter build.phonegap.com zur Verfügung stellt. Wenn Sie PhoneGap Build verwenden, müssen Sie keine lokalen SDK-Tools für mehrere mobile Plattformen installieren und warten und können davon ausgehen, dass Projekte reibungslos aktualisiert werden. Wenn Sie jedoch Ihre eigene APK lokal erstellen möchten, ohne den Build von Adobe zu verwenden, folgen Sie hier Ihrem Leitfaden für die Zielplattform: docs.phonegap.com/en/edge/…
numediaweb
Ja, ich hatte Angst, ich müsste mit dem phonegapBefehl bezahlen . Es klingt besser zu verwendencordova
Connor Leech
23

Nach dem, was ich gelesen habe (und bitte korrigiere mich, wenn ich falsch liege):

Phonegap behauptet, dass sie versucht haben, dies zu tun, dies aber nicht konnten, und gab es daher an die Apache Software Foundation weiter.

Apache in ihrer Großartigkeit (Es lebe Apache) hat es repariert, entwickelt und überragend gemacht.

Jetzt versucht Phonegap, eine zurückgenommene Kopie zu pflegen und zu verbessern, stopft sie aber weiter auf.

Meiner Meinung nach möchte ich eine solide und vertrauenswürdige Entwicklerplattform, die von erfahrenen Fachleuten erstellt wurde, denen ich vertrauen kann, und keine gepatchte Unterversion von besagtem. Daher würde ich sagen, ich bin ein Cordova-Entwickler, kein Phonegap-Entwickler.

Iv las auch, dass Phonegap in einem zweiten verzweifelten Versuch, Popularität und Kontrolle über die großartigen Werke von Apache zu erlangen, jetzt unter der Flagge von Adobe verkauft wurde. Sie wissen, Adobe, sie sind die Leute, die nichts umsonst tun und so schlecht darin sind, Software-Lebenszyklen aufrechtzuerhalten, dass ihre Apps jedes Mal, wenn Sie blinken, Updates durchführen müssen, und aus irgendeinem Grund ist jede ihrer Apps etwa 100-mal so groß wie Sie würde erwarten.

Ich denke, das ist die Zusammenfassung meiner Forschung, wenn ich sie nicht falsch gelesen habe.

Und wenn das stimmt, dann lassen wir alle diesen ganzen Phonegap-Unsinn fallen und bleiben einfach bei Cordova.

ekerner
quelle
2
Seien Sie Adobe nicht zu schwer - sie leisten wirklich hervorragende Arbeit bei der Wartung ihrer Software. Denken Sie an Photoshop - es ist seit 24 Jahren auf dem Markt und immer noch das beste auf dem Gebiet. Phonegap ist mehr der Cloud-Build-Service als alles andere. Der Code scheint ziemlich identisch mit Cordova zu sein - ansonsten würden sie die neue Cordova-Version nicht so schnell übernehmen. Der Cloud-Service macht den Erstellungsprozess wirklich einfach. Für mich als Creative Cloud-Benutzer ist alles impulsiv.
Hexodus
2
:) OK. Adobe ist jedoch bekannt für seine aufgeblähten und übermäßig aktualisierten Apps, für die Entwickler sie seit fast 24 Jahren in den Griff bekommen. Daher die Website: dearadobe.com Es ist extrem einfach, Cordova-Apps mit den entwickelten Methoden zu kompilieren / zu erstellen Das einzige, was die Cloud hinzufügt, sind die Kosten. Ich weiß jedoch, dass einige Entwickler nur ungern Befehlszeilenschnittstellen lernen, und kann daher die Rentabilität und damit die Existenz der Cloud verstehen. Ich denke, junge und / oder grüne Spieler werden es genießen.
ekerner
1
Diese CLI-widerstrebenden Entwickler können dann ruhig atmen, da Cordova jetzt mit VS 2013 Update 3 kompatibel ist :) visualstudio.com/explore/cordova-vs
rism
2
Wow Rism das ist extrem interessant. MS (der spezifische Fokus der Mutterplattform) scheint sich endlich dem Rest von uns anzuschließen. Ein großes Lob an sie, dass sie nicht nur Cordova einsetzen und Apache gutschreiben, sondern auch Nicht-MS-Plattformen wie iOS und Android unterstützen. Ich bin völlig überrascht davon. Ich muss vielleicht aufhören, sie zu boykottieren, wenn sie diese Haltung beibehalten.
ekerner
13

Hier sind Unterschiede, die ich entdeckt habe:

Ich vergleiche die CLI phonegap 3.3.0-0.18.0 mit der Funktionalität, die in der Dokumentation zu cordova 3.3.0 für diese CLI beschrieben ist.

  1. "ls" ist eine Option für "Cordova Plugin", aber nicht für "Phonegap Plugin". Sie müssen stattdessen "Liste" verwenden. zB: "phonegap plugin list"

  2. "serve" ist nicht in "phonegap -help" dokumentiert, aber es existiert und es funktioniert. Phonegap.js wird nicht gefunden und geladen, sodass die Seiten nie vollständig geladen werden, aber dennoch einen gewissen Wert bieten. Ich bin mir nicht sicher, ob dies anders ist als das Verhalten von Cordova.

  3. "phonegap platform add" funktioniert in phonegap nicht. Sie müssen einen "Phonegap Build" durchführen, um Unterstützung für eine Plattform hinzuzufügen.

Beachten Sie, dass in phonegap möglicherweise auch verwirrende Fehlermeldungen auftreten, bei denen sich die vorgeschlagene Lösung auf die Verwendung des Befehls cordova bezieht.

canadaCoder
quelle
6

Mir ist auch aufgefallen, dass Cordova einen "Aufschlag" -Befehl hat, den Phonegap nicht hat. Dieser Befehl startet einen lokalen Server an Port 8000. Dies ist praktisch, um Ihre App in Chrome auszuführen und den Ripple-Emulator zu verwenden.

zkent
quelle
2
Es ist erwähnenswert, dass die Chrome-Erweiterung des Ripple-Emulators defekt ist und jetzt ein Node.js-Befehlszeilentool unter dem Apache Incubator ist. npm install -g ripple-emulator, dann aus Ihrem Projekt dir:ripple emulate --path platforms/android/assets/www
razorbeard
Können Sie "kaputt", @Synaptix, erläutern? Es scheint für mich zu funktionieren.
zkent
Dank dafür. Ripple hat anscheinend mehr zu bieten, als ich dachte.
zkent
Phonegap verfügt über eine Desktop-GUI, mit der Sie diesen "Aufschlag" ausführen können. Durch Herunterladen der Phonegap-Anwendung für Android oder iOS können Sie die Anwendung auch direkt auf dem Gerät schnell testen, ohne den langstartigen Emulator ausführen zu müssen. Die mobile Phonegap-Anwendung stellt über WLAN eine Verbindung zu Ihrem lokalen Server an Port 3000 her und zeigt Ihre App auf Ihrem Gerät an, sodass Sie ein Gefühl für Ansicht und Leistung erhalten.
Astrowie
5

Sie sind beide identisch, mit der Ausnahme, dass Phonegap CLI Ihnen beim Erstellen Ihrer Anwendung auf PhoneGap Build helfen kann. Mein Vorschlag ist, die Cordova-CLI zu verwenden, wenn Sie den PhoneGap-Builddienst nicht verwenden.

ein Bett
quelle
4

Diese erste Wahl mag verwirrend sein, ist aber wirklich sehr einfach. PhoneGap ist ein Produkt von Adobe, das derzeit zusätzliche Build-Services enthält und möglicherweise zusätzliche Services anbietet und / oder Gebühren für die zukünftige Verwendung berechnet. Cordova gehört und wird von Apache verwaltet und wird immer als Open Source-Projekt verwaltet. Derzeit haben beide eine sehr ähnliche API. Ich würde Cordova empfehlen, es sei denn, Sie benötigen die zusätzlichen PhoneGap-Build-Services.

Abdussamad ARGUNGU
quelle
1

Oben erwähnt Abhishek die in zwei URLs angegebenen Befehlszeilenunterschiede:

  1. PhoneGap: http://docs.phonegap.com/de/edge/guide_cli_index.md.html

  2. Cordova: http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html#The%20Command-line%20Interface

Eine Sache, auf die hingewiesen werden muss, ist, dass ab diesem Beitrag die Phonegap fast mit der Cordova identisch ist und wahrscheinlich kein genaues Bild der Unterschiede bei den Befehlszeilenoptionen ist. Aus diesem Grund habe ich beide auf meinem System installiert, um die Unterschiede zu untersuchen.

Dies sind nur einige davon. Hoffentlich werden sie irgendwann mehr synchronisiert. Wenn jemand bessere Informationen hat, sag es mir bitte.

  1. Das Hinzufügen von Plattformen scheint zwischen den beiden Befehlen unterschiedlich zu sein (phonegap verwendet den Befehl "install", cordova den Befehl "platform add").
  2. Das Hinzufügen / Erstellen von Projekten scheint zwischen den beiden Befehlen gleich zu sein (dieselben Befehlszeilenoptionen werden unterstützt).
  3. Wie bereits erwähnt, kann Phonegap natürlich PhoneGap Build verwenden, sodass es über die entsprechenden Optionen verfügt, um diese oder lokale Builds auszulösen
  4. Einige andere wichtige Unterschiede in der Befehlszeile, indem Sie einfach "cordova help" und "phonegap help" ausführen und die beiden vergleichen.

Ich denke, mein Punkt ist, dass die oft erwähnte Phonegap-CLI-Dokumentation nicht wirklich für die Phonegap-CLI ist, sondern für die Cordova-CLI. Bitte sagen Sie mir, wenn mir etwas fehlt. Vielen Dank.

Tony B.
quelle
1

Ich habe diesen Unterschied festgestellt, der mich gezwungen hat, beim Erstellen meiner App eine gemischte Tüte Phonegap- und Cordova Cli-Befehle zu verwenden:

'phonegap plugin add' konnte die Befehlszeilenparameter nicht korrekt verarbeiten, während 'cordova platform add' einwandfrei funktioniert

Der Befehl, den ich benutze, ist:

'cordova plugin add https://github.com/crittercism/PhoneGap.git --variable IOS_APP_ID="[my_license_key]"

Hinweis Ich verwende Phonegap 3.5

John Brady
quelle
0

Jetzt ist ein Tag Phonegap und Cordova im Besitz von Adobe. Nur die Namenskonversation war anders. Für die Installation der Plugin-Funktionalität sollten wir denselben Befehl auch für Phonegap und Cordova verwenden.

Befehl: Cordova Plugin Cordova-Plugin-Fotobibliothek hinzufügen

Hier,

  • cordova - Schlüsselwort für Initiator
  • Plugin - Initialisieren Sie ein Plugin
  • Cordova Plugin Fotobibliothek - Name des Plugins.

Weitere Plugins finden Sie auch unter https://cordova.apache.org/docs/en/latest/

Yogesh Kumar
quelle