I'd like to take a first step towards moving plugin JS into separate repos by first moving them around within cordova-js.
Here is my proposal: Current structure: lib/common/plugin/*.js lib/$PLATFORM/plugin/*.js New structure: plugin/$PLUGIN_NAME/js/common/*.js plugin/$PLUGIN_NAME/js/$PLATFORM/*.js The require path will need to change. Going from: cordova.require('cordova/plugin/FileTransferError') To: cordova.require('plugin/file/FileTransferError') I'll obviously need to update the builder scripts accordingly. The idea here is that we: 1. "cordova plugin add" will copy files into a project's plugins directory 2. "cordova build ios" will use the cordova-js packager and pass it the plugin/ directory to use This will not involve changing how we export modules onto namespaces in common.js / platform.js. That will come next though. The resulting structure will look like: plugin/accelerometer/js/common/Acceleration.js plugin/accelerometer/js/common/accelerometer.js plugin/battery/js/common/battery.js plugin/compass/js/common/Compass*.js plugin/contacts/js/common/Contact*.js plugin/device/js/common/device.js plugin/geolocation/js/common/Coordinates.js plugin/geolocation/js/common/Position*.js plugin/globalization/js/common/Globalization*.js plugin/inappbrowser/js/common/InAppBrowser.js plugin/logger/js/common/logger.js plugin/logger/js/common/console-via-logger.js plugin/media/js/common/Capture*.js plugin/media/js/common/ConfigurationData.js plugin/media/js/common/Media*.js plugin/network/js/common/Connection.js plugin/notification/js/common/notification.js plugin/camera/js/common/Camera*.js plugin/echo/js/common/echo.js plugin/file/js/common/Directory*.js plugin/file/js/common/Entry.js plugin/file/js/common/File*.js plugin/file/js/common/Flags.js plugin/file/js/common/LocalFileSystem.js plugin/file/js/common/Metadata.js plugin/file/js/common/ProgressEvent.js plugin/splashscreen/js/common/splashscreen.js