Exception “Require” dans le projet Cordova / phonegap

J’essaie de créer une application mobile hybride à l’aide de Phonegap / Cordova sur la plateforme Android. Et j’ai réussi à ça aussi 🙂 L’application fonctionne comme souhaité dans l’émulateur Ripple dans mon navigateur Chrome. Je n’utilise ni Eclipe ADT ni Android Studio, car l’émulateur ne se charge pas rapidement.

J’ai utilisé l’événement onDeviceReady et le plug-in Navigator pour les vibrations et les alertes. Tout cela fonctionne bien comme prévu.

Lorsque la console pour développeurs est active dans Chrome, le code JavaScript se rompt dans cordova.js avec l’erreur suivante

Uncaught ReferenceError: require is not defined 

dans la ligne suivante. La même chose arrive pour le fichier notification.js aussi. Lorsque j’appuie sur continuer dans le débogueur, tout fonctionne comme prévu, mis à part cette erreur.

 var cordova_events = require('./src/events'), 

L’ordre des fichiers de script java est donné ci-dessous.

    

Je crois que je ne fais pas référence au bon fichier cordova.js et à toutes les autres dépendances. Mais je me demande aussi pourquoi l’application fonctionne correctement dans Ripple lorsque la console de développement n’est pas active.

J’ai même essayé de supprimer le fichier cordova.js car Ripple l’inclut automatiquement conformément à l’événement Phonegap Deviceready – émulateur d’ondulations

J’ai les copies de téléchargement de phonegap et cordova de leurs sites respectifs. J’ai installé Node.js et ai installé les paquets aussi.

Mes questions sont les suivantes:

  • Où trouver le bon fichier cordova.js? Quelle est la version correcte à inclure dans mon projet de fichiers html?
  • Quel est l’utilisateur de Node.js ici?
  • Est-il conçu pour inclure automatiquement les scripts basés sur Node.js? Si oui, qu’est-ce qui me manque?

J’avoue que le concept et l’utilisation de node.js ressemblent pour moi à une fusée.

Cordova et Phonegap sont à peu près la même chose, vous ne devriez pas avoir besoin de télécharger les deux. Cordova est le projet open source qui vous aide à publier votre application HTML5 sur plusieurs systèmes d’exploitation mobiles. Phonegap utilise Cordova pour cela, mais ajoute également des fonctionnalités supplémentaires, principalement le fait de pouvoir intégrer le cloud plutôt que votre poste de travail.

Node.js est utilisé par Cordova pour de nombreuses étapes de la construction. Etant donné que Cordova fonctionne sur des machines OSX et Windows, nous avions besoin d’un moyen d’écrire des scripts de construction et de package qui fonctionneraient sur les deux systèmes d’exploitation – node.js fournit cela. Lorsque vous construisez une application avec Cordova, vous ne devez absolument pas utiliser node.js, à moins de créer un système dorsal complémentaire.

À partir de Cordova 3.x, il existe un outil de ligne de commande Cordova qui peut grandement vous aider à créer l’application. Il s’occupe de la copie des fichiers cordova.js et cordova-android.jar appropriés. Vous pouvez lire à ce sujet ici http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-line%20Interface

Une fois que vous êtes configuré, vous voudrez peut-être lire mon autre réponse qui clarifie certains cas d’utilisation de l’outil Cordova : Un plugin phonegap doit-il être déclaré dans le fichier config.xml?

Ne pas utiliser les fichiers plugins * .js en dehors de la source du plugin.

Ne pas append des fichiers plugins * .js en tant que balises dans votre html
(Cordova les charge seul sur la base de cordova_plugins.js)

L’erreur spécifique ‘nécessite n’est pas défini’ provient de l’absence de Cordova define dans le fichier plugins.js

 cordova.define("org.apache.cordova.file.DirectoryEntry", function(require, exports, module) { }); 

Pour éviter tout ce problème:

Utilisez l’ interface de ligne de commande cordova pour configurer des plates-formes et des plug-ins. Il gère tous les fichiers sources natifs et javascript et les regroupe correctement.