tree 4fdaad5b70e904cdbd424eea59f967e85c16879a
parent 4f6abd672e0362767fd4b6fe0b477b1e4c25e1e1
author Raphael von der Grün <raphinesse@gmail.com> 1563448508 +0200
committer GitHub <noreply@github.com> 1563448508 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJdMFS8CRBK7hj4Ov3rIwAAdHIIAAC4ajONbyrS6SHNOo3PvYsi
 LgIq2vMSy+j4AUYFna0HodZOcw5PDA55VwIJwVaaFjYPOQ7X/vG8anfgX9W8VwQV
 XIy9GTmXQftrK4ITK+HoTy5+l8TEFRmlZ6opYBLAN4ZvI+LteHnNcnUfPKtGVwuU
 JJ0yf7IbqcocGIZTJtg9l5N5orRUwjza+23JShpp+S6vWSS8q/eodjf/wTSgyW33
 uz+1KDkZWugZbjcgpC2FcXLBVzFiy3vIe1GgSsBycVCnNFq+y3VMFstYGQB7MlPI
 5mqsLxIEpF2VSp3TMk2Yd0wIAiRlgOET1k8ww0/+8/ij0UCSvKUnv+bn/rEZAa0=
 =q41R
 -----END PGP SIGNATURE-----
 

Completely refactor build system (#205)

The goals of this refactoring are the following:

- Improve code quality of the build system
- Prepare code base for adding code coverage
- Prepare code base for exposing the build system as a package export,
  so platforms can build their `cordova.js` during their build (or
  creation) process. This would make the JS build using coho obsolete.
- Prepare code base to remove dependency on Grunt

The build process now lives under `build-tools` (was `tasks`). It does
not depend on Grunt anymore but is written in plain Node.js.

The original Grunt interface for building (as used by coho) was
preserved and is implemented in `Gruntfile.js` using the new build
system. The `platformName` option and support for getting platform paths
from the `cordova-platforms` key in `package.json` have been removed
from the Grunt interface, but neither of those are used in coho.

The logic that is specific to the test build has been extracted from
the rest of the build. It now lives in `test/build.js` and is run
automatically during `npm test`.

The following dependencies have been added:

- execa
- fs-extra
- globby

I have taken extra care to preserve the exact format of the built file.
This means that the correctness of the refactoring can be verified by
simply diffing the build artifacts in `pkg` created with and without
this change.