Javascript库无法在Device上运行

Joh*_*ews 8 javascript ios angularjs cordova phonegap-build

我正在使用MikeMcl的BigNumber库来处理我对大数字的需求.我在Ionic/Angular项目中使用这个库.

正如在Github上所解释的那样,安装和使用这个库的方法是在你的html中包含一个脚本tage:

<!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>
Run Code Online (Sandbox Code Playgroud)

现在在我的代码中,我可以使用这个库作为例如:

x = new BigNumber(123.4567)
y = BigNumber('123456.7e-3')
z = new BigNumber(x)
x.equals(y) && y.equals(z) && x.equals(z)      // true
Run Code Online (Sandbox Code Playgroud)

我对此进行了测试,它可以在Chrome和Safari上运行(甚至在设备上).

但是当我在手机上安装应用程序时,使用Phonegap Build,应用程序不再工作了(我通过从我的代码中删除BigNumber语法来检查这个库是什么原因).此外,应用程序中的Angular只是崩溃和显示,{{variableName}}并且没有任何工作.

因为我是在云环境中开发的,所以我尝试使用Mac上的Safari Developer Debug Console调试应用程序(通过将带有USB的手机插入Mac,然后在Safari中启用Developer工具).

但是,除了一个错误之外没有发现任何错误:

file not found: "path/to/ionic/lib/js/angular.min.js.map" 404
Run Code Online (Sandbox Code Playgroud)

但这不是问题的原因.

到底是怎么回事?我怎样才能在我的设备上使用这个javascript库?

Joh*_*ews 0

找到了解决方案。如果您还遇到 JavaScript 库无法在您的设备上运行但在浏览器中运行的情况,那么这个答案可能会对您有所帮助。

出现问题是,当我运行npm install安装包时,它没有正确更新我的 .git 依赖项。发生的情况是,每次我通过 Github 和 Phonegap Build 打包我的应用程序时,BigNumber 的文件夹都没有被考虑在内。所以基本上,该文件bignumber.js在应用程序中不可用,这就是它不起作用的原因。

我通过将 BigNumber 文件夹中的所有文件复制到新的自定义文件夹中解决了这个问题。

一个相关的问题在这里:Git not Push all files andfolders