Preppy
![Dependencies](https://david-dm.org/sebastian-software/preppy.svg)
![Sponsor](https://app.codesponsor.io/embed/Nehv39FW5U4NHEn7axuGx4CE/sebastian-software/preppy.svg)
Preppy - A Simple and lightweight tool for preparing the publish of NPM packages.
Preppy includes a Babel-based transpiler configuration which supports all of ES2015/ES2016/ES2017. Plus support for Object-Rest-Spread and Class Properties. The High-performance async engine with support for generators and async/await powered by fast-async is enabled by default. It requires nodent-runtime to be installed when using modern async features. It uses Transform-Runtime to externalize requirements to Polyfills. Resulting code needs all Polyfills for each library published with this tool. Typically by using services like polyfill.io or Babel Runtime aka CoreJS.
Output Targets
Preppy produces exports of your sources depending on the entries of your packages package.json
. It supports building for CommonJS and well as with ES Modules (ESM). Just add the relevant entries to the configuration.
- CommonJS Output:
main
- ES Module Output:
module
Basic Example:
{
"name": "mypackage",
"main": "lib/main-cjs.js",
"module": "lib/main-esm.js"
}
Binary Output
Additionally prepublish
is capable in generating for binary targets.
This generates a mypackage
binary which is generated from the matching source file.
Binaries are generally generated from one of these source files:
src/binary.js
src/script.js
Example Configuration:
{
"name": "mypackage",
"bin": {
"mypackage": "bin/mypackage"
}
}
Installation
NPM
$ npm install --save-dev preppy
Yarn
$ yarn add --dev preppy
Usage
Preppy comes with a binary which can be called from within your scripts
section
in the package.json
file.
"scripts": {
"prepare": "preppy"
}
There is also some amount of parameters you can use if the auto detection of your library does not work out correctly.
Usage
$ preppy
Options
--input-node Input file for NodeJS target [default = auto]
--input-binary Input file for Binary target [default = auto]
--output-folder Configure the output folder [default = auto]
-m, --sourcemap Create a source map file during processing
-v, --verbose Verbose output mode [default = false]
-q, --quiet Quiet output mode [default = false]
License
Apache License; Version 2.0, January 2004
Copyright
Copyright 2016-2017
Sebastian Software GmbH