我得到“ ReferenceError:找不到变量:require”在osx上运行Cordova应用程序

问题描述 投票:1回答:1

我正在尝试开发一个使用ytdl-core节点模块的基于Cordova的应用程序。据我了解,Cordova使用node-js在osx(或其他非浏览器平台)上运行该应用程序。该应用程序成功构建并在Mac上打开,但是javascript无法正常工作,因为它在打开和/或刷新时抛出此错误:

modify in config.xml. 2020-05-23 20:11:32.639 Weather[11707:374910] JavaScript error: index.js:11: ReferenceError: Can't find variable: require

index.js:11是这一行:const ytdl = require('ytdl-core');

大多数有此错误的人正在得到它,因为浏览器不支持“ require”,但是正如我所说,我正在osx平台上运行。我已经检查了是否已安装node.js,并且ytdl-core在我项目的node_modules文件夹中。

这是我的git储存库:https://github.com/FCjosh/JRMusicapp.git

我完全按照xcode在他们网站上说的安装了cordova。值得一提的是我正在使用Jquery,尽管我认为node.js不会出现问题。

UPDATE

经过大量研究,我有理由相信Javascript文件无法使用require函数的原因是因为Cordova像浏览器一样对待它。对于可能有效或无效的解决方案,我有三个想法:

  1. Cordova插件-一个插件本机运行,也许可以制作某种特定于ytdl依赖项的nodeJS插件。

  2. Browserify,Webpack等。据我了解,这些使您可以在浏览器上运行服务器端代码。 This seems pretty straightforward and a likely to work solution

  3. Create a native app and embed cordova。我不知道如何制作本机应用程序,如果这样做,我不会使用Cordova。因此,我不会采用该选项,但是我可以理解将Cordova嵌入本机应用程序非常有用的情况。

我开始制作一个插件,但是当我到达Objective C部分时卡住了,我不知道如何在插件中实现nodeJS。我正在更改通往Browserify / Webpack解决方案的路线,因为该插件使我头疼,制作本机应用程序也使我头疼。

如果Browserify / Webpack解决方案能够正常工作,我会尽快再次更新。

javascript node.js cordova require
1个回答
0
投票

使用Webpack或类似的服务。

© www.soinside.com 2019 - 2024. All rights reserved.