В приложении Cordova / Phonegap / Webpack: Uncaught ReferenceError: argscheck не определен - PullRequest
0 голосов
/ 01 июня 2018

Я создаю приложение 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 знать о его содержимом, чтобы можно было разрешить импорт плагина и его зависимости?

...