我正在构建一个使用
创建的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语句。
我已确定argscheck
是cordova.js
文件中定义的一个片段,该文件正在生成并提供服务,在Chrome中我可以看到cordova.js
包含:
// file: src/common/argscheck.js
define("cordova/argscheck", function(require, exports, module) {
但是由于webpack没有将此作为其中一个来源处理,因此webpack不知道如何解决导入问题。
鉴于cordova.js
本身似乎是一个构建文件,我如何让webpack知道它的内容,以便解决插件导入及其依赖性?