找不到名称 'cordova'。离子构建 ios

Cannot find name 'cordova'. ionic build ios

我正在使用 ionic2 构建。 我做了 ionic plugin add cordova-plugin-file 并使用了以下代码。

import {File} from 'ionic-native';
@Injectable()
export class GlobalVars {
  constructor(platform:Platform) {
    platform.ready().then(() => {
       this.appRootFolder = cordova.file.documentsDirectory;
    }
  }
}

然后我做了 ionic build android,我得到了这个错误

Cannot find name 'cordova'

经过2个小时的努力,我按照命令解决了问题

npm install -g typings
typings install dt~cordova --save --global 
typings install dt~cordova/plugins/filesystem --save  --global

这有助于构建 android,但对于 iOS 仍然失败。当我 运行 这个 ionic build ios 我仍然得到

Cannot find name 'cordova'

尝试从此处复制 cordova.d.ts 文件和插件文件夹 - https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/cordova230

并将此文件夹和文件粘贴到您的 project/typings 目录中。

我在文件

的顶部写了这一行(declare var cordova:any;)
import {File} from 'ionic-native';
declare var cordova:any;

我的问题也解决了。

最近,您可以这样做:

在 CLI 中,从您的项目文件夹:

ionic plugin add cordova-plugin-file

然后,在您的 component/class 文件中:

import { File } from 'ionic-native';

declare var cordova: any;
const fs:string = cordova.file.dataDirectory;
File.checkDir(this.fs, 'mydir')
    .then(_ => console.log('yay'))
    .catch(err => console.log('boooh'));

许多本机插件现在已由 Ionic 团队很好地实现和记录:)

来源:Ionic Native docs