在Cordova / Phonegap / Webpack应用程序中:未捕获的ReferenceError:未定义argscheck

时间:2018-05-31 21:41:57

标签: cordova typescript webpack cordova-plugins phonegap

我正在构建一个使用

创建的phonegap应用程序

phonegap create MyApp --template blank

然后添加Webpack以将Typescript源构建到www目录。

我现在正在尝试使用我使用命令

添加的Media插件

phonegap plugin add cordova-plugin-media

我试图通过导入

从我的Typescript源中使用它

import * as Media from 'cordova-plugin-media/www/Media';

然后使用

test() {
    var sound = new Media('cdvfile://localhost/www/woopwoop.mp3', ()=>{});
    sound.play();
}

当应用程序运行时,它会出错:

Uncaught ReferenceError: argscheck is not defined
    at Object.cordova/argscheck (argscheck":1)
    at __webpack_require__ (bootstrap:19)
    at Object../node_modules/cordova-plugin-media/www/Media.js (Media.js:22)
    at __webpack_require__ (bootstrap:19)

这是因为新添加的Media插件包含:

var argscheck = require('cordova/argscheck'),
    utils = require('cordova/utils'),
    exec = require('cordova/exec');

因此webpack会尝试解析这些require语句。

我已确定argscheckcordova.js文件中定义的一个片段,该文件正在生成并提供服务,在Chrome中我可以看到cordova.js包含:

// file: src/common/argscheck.js
define("cordova/argscheck", function(require, exports, module) {

但是由于webpack没有将此作为其中一个来源处理,因此webpack不知道如何解决导入问题。

鉴于cordova.js本身似乎是一个构建文件,我如何让webpack知道它的内容,以便解决插件导入及其依赖性?

0 个答案:

没有答案