【问题标题】:"Require" exception in Cordova/phonegap projectCordova/phonegap 项目中的“要求”异常
【发布时间】:2013-11-18 01:20:46
【问题描述】:

我正在尝试在 Android 平台上使用 Phonegap/Cordova 构建一个混合移动应用程序。我也成功了 :) 该应用程序在我的 Chrome 浏览器中的 Ripple 模拟器中按需要运行。我没有使用 Ecipe ADT 或 Android Studio,因为模拟器无法快速加载。

我使用 onDeviceReady 事件和 Navigator 插件来进行振动和警报。所有这些都按预期正常工作。

当开发者控制台在 Chrome 中处于活动状态时,cordova.js 中的 JavaScript 会中断并出现以下错误

Uncaught ReferenceError: require is not defined 

在下一行。 notification.js 文件也是如此。当我在调试器中按继续时,除了该错误之外,一切都按预期工作。

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

java脚本文件的顺序如下。

<script src="js/cordova.js"></script>
<script src="js/notification.js"></script>               
<script src="js/vibration.js"></script> 

我相信我没有引用正确的 cordova.js 文件和所有其他依赖项。但我也想知道,当开发者控制台不活动时,应用程序如何在 Ripple 中正常工作。

我什至尝试删除 cordova.js 文件,因为 Ripple 会根据 phonegap deviceready event - ripple emulator 自动包含它

我有 phonegap 和 cordova 的下载副本,它们来自它们各自的站点。我已经安装了 Node.js,也安装了包。

我的问题是:

  • 在哪里可以找到正确的 cordova.js 文件?哪个是要包含在我的 html 文件项目中的正确版本?
  • 这里的 Node.js 用户是什么?
  • 是否设计为自动包含基于 Node.js 的脚本?如果是这样,我错过了什么?

我承认 node.js 的概念和用法对我来说就像一门火箭科学。

【问题讨论】:

    标签: javascript android node.js cordova


    【解决方案1】:

    不要使用插件源之外的插件 *.js 文件。

    不要将插件 *.js 文件作为标签添加到您的 html 中
    (Cordova 基于 cordova_plugins.js 自行加载)

    特定错误“未定义要求”来自 plugins.js 中缺少 cordova 定义

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

    为了避免所有这些麻烦:

    使用cordova command line interface 设置平台和插件。它管理所有本机和 javascript 源文件,并以适当的方式将它们组合在一起。

    【讨论】:

      【解决方案2】:

      Cordova 和 Phonegap 几乎是一回事,您不需要同时下载两者。 Cordova 是一个开源项目,可帮助您将 HTML5 应用程序发布到多个不同的移动操作系统。 Phonegap 使用 Cordova 来做到这一点,但也添加了一些额外的功能,主要是能够在云中而不是在您的工作站上构建。

      Cordova 将 Node.js 用于许多构建步骤。由于 Cordova 在 OSX 和 Windows 机器上工作,我们需要一种方法来编写可以在这两种操作系统上工作的构建和打包脚本 - node.js 提供了这一点。当您使用 Cordova 构建应用程序时,您根本不应该真正使用 node.js,除非您还构建了一个互补的后端系统。

      从 Cordova 3.x 开始,有一个cordova 命令行工具可以极大地帮助您创建应用程序。它负责复制正确的 cordova.js 和 cordova-android.jar 文件。你可以在这里阅读它http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-line%20Interface

      设置完成后,您可能想阅读我的其他答案,该答案阐明了cordova 工具的一些用例:Should a phonegap plugin be declared in the config.xml file?

      【讨论】:

      • 感谢您的回复。我对此有了一些想法。我知道cordova和phonegap几乎是一样的。我刚刚下载以尝试实际工作的cordova.js 文件。我使用CLI 构建了一个新项目并将cordova.js 复制到我的非基于cli 的项目(eclip 项目)中。我仍然遇到同样的错误。
      • 有什么方法可以通过聊天或电子邮件取得联系吗?看来您是 Phonegap 方面的专家。我是一名传统的大型机 COBOL 开发人员,在使用 PHP 之后开始使用它。 :)
      • 通常您不应该同时使用 CLI 和 Eclipse。可以使用 CLI 设置项目,然后在 Eclipse 中执行“从现有代码新建 Android 项目”并指向您的 /cordovaCli/myApp/platforms/android/ 文件夹。我们将此工作流(使用 Eclipse)称为“本机平台开发”。我一直在尝试澄清文档中的两个工作流程:github.com/apache/cordova-docs/pull/140 希望我能在这周完成它。在工作日我试图潜伏在#cordova 和#phonegap 上的freenode,你可以ping 我那里......COBOL 是什么? ;) 大声笑 jk
      • 这是 github cordova docs 中的一个很好的信息。我在想为什么 CLI 项目中有 2 个 www 文件夹。一个是 root,一个在 platform\android\assets\。实际上要编辑哪个 www 文件夹来构建应用程序?为什么两者都有 2 www 和一些内容?看起来内容也一样..
      • 顺便说一句,我投票支持科尔多瓦文档的一些法语翻译。我的小贡献:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-18
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多