Package Exports
- fml-cordova-res
- fml-cordova-res/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fml-cordova-res) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Resource Generator
This tool will crop and resize JPEG and PNG source images to generate icons and splash screens for modern iOS, Android, and Windows. fml-cordova-res
was developed for use with Cordova, but Jigra and other native runtimes are supported.
Install
$ npm install -g fml-cordova-res
Usage
fml-cordova-res
expects a Cordova project structure such as:
resources/
├── android
| ├── icon-background.png
| └── icon-foreground.png
├── icon.png
└── splash.png
config.xml
resources/icon.(png|jpg)
must be at least 1024×1024pxresources/splash.(png|jpg)
must be at least 2732×2732pxconfig.xml
is optional. If present, the generated images are registered accordingly
To generate resources with all the default options, just run:
$ fml-cordova-res
fml-cordova-res
accepts a platform for the first argument. If specified, resources are generated only for that platform:
$ fml-cordova-res ios
Otherwise, if config.xml
exists, fml-cordova-res
will look for platforms (e.g. <platform name="ios">
) and generate resources only for the configured platforms.
Documentation
See the help documentation on the command line with the --help
flag.
$ fml-cordova-res --help
Adaptive Icons
Android Adaptive Icons are also supported. If you choose to use them, create the following additional file(s):
resources/android/icon-foreground.png
must be at least 432×432pxresources/android/icon-background.png
must be at least 432×432px
A color may also be used for the icon background by specifying the --icon-background-source
option with a hex color code, e.g. --icon-background-source '#FFFFFF'
.
Regular Android icons will still be generated as a fallback for Android devices that do not support adaptive icons.
📝 Note: For Cordova apps, Cordova 9+ and cordova-android
8+ is required.
Jigra
To use fml-cordova-res
in Jigra and other native runtimes, it is recommended to use --skip-config
(skips reading & writing to Cordova's config.xml
file) and --copy
(copies generated resources into native projects).
For example, to generate icons and splash screens for iOS and Android in Jigra, run:
$ fml-cordova-res ios --skip-config --copy
$ fml-cordova-res android --skip-config --copy
You can use --ios-project
and --android-project
to specify the native project directories into which these resources are copied. By default, fml-cordova-res
copies Android resources into android/
and iOS resources into ios/
(the directories Jigra uses).
Tips
.gitignore
To avoid committing large generated images to your repository, you can add the
following lines to your .gitignore
:
resources/android/icon
resources/android/splash
resources/ios/icon
resources/ios/splash
resources/windows/icon
resources/windows/splash
Programmatic API
fml-cordova-res
can be used programmatically.
CommonJS Example
const run = require('fml-cordova-res');
await run();
TypeScript Example
run()
takes an options object described by the interface Options
. If options are provided, resources are generated in an explicit, opt-in manner. In the following example, only Android icons and iOS splash screens are generated.
import { Options, run } from 'fml-cordova-res';
const options: Options = {
directory: '/path/to/project',
resourcesDirectory: 'resources',
logstream: process.stdout, // Any WritableStream
platforms: {
android: { icon: { sources: ['resources/icon.png'] } },
ios: { splash: { sources: ['resources/splash.png'] } },
},
};
await run(options);