@ryaninvents/plugin-bundle-zip-node v1.4.0
@ryaninvents/plugin-bundle-zip-node
Plugin for @pika/pack to zip built files for Node.js
Why would I want this?
This package creates a zip file containing your compiled source code. After the build step runs, the zip file will be available in ./pkg/dist-node.zip.
I built this package because I wanted to build an AWS Lambda function source zip using Pika Pack.
Installation
Use the package manager npm to install @ryaninvents/plugin-bundle-zip-node.
npm install --save-dev @ryaninvents/plugin-bundle-zip-nodeThen, modify your @pika/pack configuration in your package.json to enable:
{
"@pika/pack": {
"pipeline": [
["@pika/plugin-standard-pkg"],
["@pika/plugin-build-node"],
["@ryaninvents/plugin-bundle-zip-node"]
]
}
}For more details on setting up Pack, refer to the @pika/pack repository. For details on configuring plugin-bundle-zip-node, keep reading.
Options
preserve
Default value:
false
Preserve the package root -- that is, the zip file will contain everything in the Pika pkg directory. Note: By default, this will not include the package.json.
{
"@pika/pack": {
"pipeline": [
["@pika/plugin-standard-pkg"],
["@pika/plugin-build-node"],
["@ryaninvents/plugin-bundle-zip-node", {
"preserve": true
}]
]
}
}bundleName
Default value:
"node"
Specify a name for the bundle. The bundle will be stored as dist-${bundleName}.zip.
{
"@pika/pack": {
"pipeline": [
["@pika/plugin-standard-pkg"],
["@pika/plugin-build-node"],
["@ryaninvents/plugin-bundle-zip-node", {
"bundleName": "javascript"
}]
]
}
}directory
Default value:
"dist-node"
Choose a different directory to bundle. Note that this will have no effect on bundle name. Also if you have set preserve: true, then this option will have no effect.
{
"@pika/pack": {
"pipeline": [
["@pika/plugin-standard-pkg"],
["@pika/plugin-build-node"],
["@ryaninvents/plugin-bundle-zip-node", {
"directory": "dist-web",
"bundleName": "web"
}]
]
}
}manifest
Default value:
truewhen"preserve": true;falseotherwise
Include the package.json in the bundle. Note that this will be the package.json as modified by any preceding Pika pipeline steps.
If you set "manifest": true while "preserve": false, you may end up with unexpected results. Proceed with caution.
{
"@pika/pack": {
"pipeline": [
["@pika/plugin-standard-pkg"],
["@pika/plugin-build-node"],
["@ryaninvents/plugin-bundle-zip-node", {
"preserve": true,
"manifest": true
}]
]
}
}sources
Default value:
["**"]
Power-user option. Directly specify a set of files to use. Use negation to exclude files; for example, exclude test files using "!*.test.js".
{
"@pika/pack": {
"pipeline": [
["@pika/plugin-standard-pkg"],
["@pika/plugin-build-node"],
["@ryaninvents/plugin-bundle-zip-node", {
"sources": [
"*.js",
"!*.test.js"
]
}]
]
}
}epoch
Default value:
true
When true, the zip file will always be created with the same timestamp. Set to false to generate correct timestamps.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.