UNPKG

@ionic/cli-plugin-cordova

Version:

Ionic Cordova Plugin for Ionic CLI

69 lines (67 loc) 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const chalk = require("chalk"); const cli_utils_1 = require("@ionic/cli-utils"); const cordova_1 = require("../lib/utils/cordova"); const setup_1 = require("../lib/utils/setup"); const configXml_1 = require("../lib/utils/configXml"); const base_1 = require("./base"); let PrepareCommand = class PrepareCommand extends base_1.CordovaCommand { preRun(inputs, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { yield this.checkForAssetsFolder(); }); } run(inputs, options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const [platform] = inputs; if (platform) { const conf = yield configXml_1.ConfigXml.load(this.env.project.directory); const platformEngine = conf.getPlatformEngine(platform); if (!platformEngine) { const confirm = yield this.env.prompt({ message: `Platform ${chalk.green(platform)} is not installed! Would you like to install it?`, type: 'confirm', name: 'confirm', }); if (confirm) { yield setup_1.installPlatform(this.env, platform); } else { throw this.exit(`Can't prepare for ${chalk.green(platform)} unless the platform is installed. Did you mean just ${chalk.green('ionic cordova prepare')}?`); } } } const conf = yield configXml_1.ConfigXml.load(this.env.project.directory); yield conf.resetContentSrc(); yield conf.save(); const response = yield this.runCordova(cordova_1.filterArgumentsForCordova(this.metadata, inputs, options), {}); this.env.log.msg(response); }); } }; PrepareCommand = tslib_1.__decorate([ cli_utils_1.CommandMetadata({ name: 'prepare', type: 'project', description: 'Copies assets to Cordova platforms, preparing them for native builds', longDescription: ` ${chalk.green('ionic cordova prepare')} will do the following: - Copy the ${chalk.bold('www/')} directory into your Cordova platforms. - Transform ${chalk.bold('config.xml')} into platform-specific manifest files. - Copy icons and splash screens from ${chalk.bold('resources/')} to into your Cordova platforms. - Copy plugin files into specified platforms. You may wish to use ${chalk.green('ionic cordova prepare')} if you run your project with Android Studio or Xcode. `, exampleCommands: ['', 'ios', 'android'], inputs: [ { name: 'platform', description: `The platform you would like to prepare (e.g. ${chalk.green('ios')}, ${chalk.green('android')})`, required: false, }, ] }) ], PrepareCommand); exports.PrepareCommand = PrepareCommand;