Webpack 2+,如何填充Cordova

Dar*_*ron 7 shim cordova webpack angular

问题

所以我正在Cordova建立一个Angular项目,我想知道是否有人知道如何在webpack中使用Cordova.

通常情况下,您cordova.js直接在index.html中引用,但我选择避免这种情况,并将其包含在捆绑包中,以便树摇动以及所有这些.不确定它是否合理,但我想我会问,因为谷歌已经失败了我.

我正在引用一个名为splashscreen的cordova插件,如下所示:

import * as splashscreen from 'cordova-plugin-splashscreen/www/splashscreen';
Run Code Online (Sandbox Code Playgroud)

但是这个插件需要cordova/exec:

var exec = require('cordova/exec');
Run Code Online (Sandbox Code Playgroud)

这是webpack失败的地方:

ERROR in ./~/cordova-plugin-splashscreen/www/splashscreen.js
Module not found: Error: Can't resolve 'cordova/exec' in './node_modules/cordova-plugin-splashscreen/www'
Run Code Online (Sandbox Code Playgroud)

所以我尝试调整webpack.config.js以获取webpack以了解cordova所在的位置:

let cordova;
let cordovaExec;

if (context.opts.platforms[0] === 'ios') {
    cordova = './platforms/ios/platform_www/cordova';
    cordovaExec = 'cordova-ios/cordova-js-src/exec';
}
else {
    cordova = './platforms/android/platform_www/cordova';
    cordovaExec = 'cordova-android/cordova-js-src/exec';
}
Run Code Online (Sandbox Code Playgroud)

然后是Webpack的ProvidePlugin:

new ProvidePlugin({
            'cordova': cordova,
            'cordova/exec': cordovaExec
})
Run Code Online (Sandbox Code Playgroud)

但错误仍然存​​在......

在Webpack方面我不是专家,所以有人知道解决方案,如果有的话?