Я создаю приложение 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
, который генерирует phonegap, иВ Chrome я вижу, что cordova.js
содержит:
// file: src/common/argscheck.js
define("cordova/argscheck", function(require, exports, module) {
Но поскольку webpack не обрабатывает это как один из источников, webpack не знает, как разрешить импорт.
Учитывая, что cordova.js
кажетсяuilt сам файл, и как я могу заставить webpack знать о его содержимом, чтобы можно было разрешить импорт плагина и его зависимости?