CordovaPromiseFS未定义

时间:2016-09-21 08:28:48

标签: javascript cordova browserify

我无法在我的cordova应用程序中使用cordova-promise-fs

我拥有:index.html,其中包含一个由browserify创建的js文件。这个js文件包含cordovapromisefs.js,promiscuous.js和我自己的代码的内容,它们是:

require('../node_modules/cordova-promise-fs/dist/CordovaPromiseFS.js');

var fs = CordovaPromiseFS({
            persistent: true, // or false
            storageSize: 20 * 1024 * 1024, // storage size in bytes, default 20MB 
            concurrency: 3, // how many concurrent uploads/downloads?
            Promise: require('../node_modules/promiscuous/promiscuous.js') // Your favorite Promise/A+ library! 
        });

(function () {
    "use strict";


    document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );

    function onDeviceReady() {
        console.log(fs);
    };  
} )();

我认为这应该完成工作,但这导致我“未捕获的ReferenceError:未定义CordovaPromiseFS”

愿意指出正确的方向。

2 个答案:

答案 0 :(得分:0)

尝试分配从require返回的值:

var CordovaPromiseFS = require('../node_modules/cordova-promise-fs/dist/CordovaPromiseFS.js');

你也可以使用webpack自己构建CordovaPromiseFS作为浏览器库。 the repo's readme建议您克隆源并运行可用的prepublish命令:

npm install webpack -g
npm run-script prepublish

此命令基本上包含CordovaPromiseFS的index.js文件和压缩的dist文件,并将其公开给变量(see the source)。

答案 1 :(得分:0)

您正在使用Browserify构建捆绑包,因此不需要已捆绑的cordova-promise-fs/dist/CordovaPromiseFS.js文件,而是需要模块本身,如下所示:

var CordovaPromiseFS = require('cordova-promise-fs');

这将包括你的包中的cordova-promise-fs/index.js文件 - 与已经捆绑的文件不同 - 是一个导出工厂函数的CommonJS模块。