Webpack 2+,如何填充Cordova

时间:2017-07-17 16:59:05

标签: angular cordova webpack shim

问题

所以我在科尔多瓦建立了一个Angular项目,我想知道是否有人知道如何在webpack中使用Cordova。

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

代码

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

import * as splashscreen from 'cordova-plugin-splashscreen/www/splashscreen';

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

var exec = require('cordova/exec');

这是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'

所以我尝试调整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';
}

然后是Webpack' ProvidePlugin

new ProvidePlugin({
            'cordova': cordova,
            'cordova/exec': cordovaExec
})

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

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

0 个答案:

没有答案