La biblioteca de Javascript no funciona en el dispositivo

Estoy usando la biblioteca BigNumber de MikeMcl para manejar mis necesidades de grandes numbers. Utilizo esta biblioteca en un proyecto jónico / angular .

Como se explica en Github , la forma de instalar y usar esta biblioteca es include una secuencia de commands en tu html:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title></title> <!-- compiled css output --> <link href="css/ionic.app.min.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <!-- ionic/angularjs js --> <script src="lib/ionic/js/ionic.bundle.min.js"></script> <!-- cordova script (this will be a 404 during development) --> <script src="lib/ngCordova/dist/ng-cordova.min.js"></script> <script src="cordova.js"></script> <!-- ********* BIGNUMBER library ********* --> <script src='lib/bignumber.js/bignumber.min.js'></script> <script src="js/app.js"></script> <script src="js/controllers.js"></script> <script src="js/services.js"></script> </head> <body ng-app="starter"> <ion-nav-view></ion-nav-view> </body> </html> 

Ahora en mi código, puedo usar esta biblioteca como por ejemplo:

 x = new BigNumber(123.4567) y = BigNumber('123456.7e-3') z = new BigNumber(x) x.equals(y) && y.equals(z) && x.equals(z) // true 

Probé esto y funciona bien en Chrome y en Safari (incluso en el dispositivo).

Pero cuando instalo la aplicación en mi teléfono, usando Phonegap Build , la aplicación ya no funciona (comprobé que esta biblioteca es la causa al eliminar las syntax de BigNumber de mi código). Además, el Angular en la aplicación simplemente falla y muestra, por ejemplo, {{variableName}} y nada funciona.

Como desarrollé en un entorno en la nube, traté de depurar la aplicación utilizando la console de desarrollo de debugging de Safari en una Mac (conectando mi teléfono con un USB a la Mac y luego habilitando las herramientas de desarrollo en Safari).

Sin embargo, no se encontraron errores con exception de uno:

 file not found: "path/to/ionic/lib/js/angular.min.js.map" 404 

Pero esta no es la causa del problema .

¿Qué está pasando? ¿Cómo puedo seguir usando esta biblioteca javascript en mi dispositivo?

Acabo de probar su código y no funciona porque cuando crea la variable y no usa la palabra nuevo.

Este es el código que he usado y funciona.

 x = new BigNumber(123.4567) y = new BigNumber('123456.7e-3') z = new BigNumber(x) alert( x.equals(y) && y.equals(z) && x.equals(z));// I get true 

@ John Andrews,

Si este es el scope de su código, le falta al oyente del dispositivo . En cordova / phonegap normalmente no puedes hacer cosas, hasta que obtengas el evento de server . Entonces, esto es lo único que puedo pensar, ¿puedes agregar una function onDeviceReady() {} y ver si eso soluciona tu problema?

Ah, y, por supuesto, asegúrese de ejecutar sus operaciones DESPUÉS de este evento.

Encontré la solución. Si también está experimentando que una biblioteca de JavaScript no funciona en su dispositivo, pero lo hace en el browser, esta respuesta podría ayudarlo.

El problema ocurrió cuando ejecuté npm install para instalar el package, que no actualizaba mis dependencies .git correctamente. Lo que sucedió es que cada vez que empaqué mi aplicación a través de Github y Phonegap Build, no se tuvo en count la carpeta de BigNumber. Básicamente, el file bignumber.js no estaba disponible en la aplicación y por eso no funcionó.

Lo solucioné copyndo todos los files de la carpeta BigNumber a una nueva carpeta personalizada.

Una pregunta relacionada está aquí: Git no empuja todos los files y carpetas