繁体   English   中英

Cordova / phonegap项目中的“要求”例外

[英]“Require” exception in Cordova/phonegap project

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

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

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

Uncaught ReferenceError: require is not defined 

在以下行中。 对于notification.js文件也是如此。 当我在调试器中按下continue时,除了该错误之外,所有内容都会按预期再次运行。

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事件自动包含它- 波纹模拟器

我有各自网站的phonegap和cordova的下载副本。 我已经安装了Node.js并安装了软件包。

我的问题是:

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

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

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

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

特定错误'require not defined'来自plugins.js中缺少的cordova定义

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

});

为了避免所有这些麻烦:

使用cordova命令行界面来设置平台和插件。 它管理所有本机和javascript源文件,并以正确的方式将它们组合在一起。

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工具的一些用例: 是否应在config.xml文件中声明phonegap插件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM