1.5.0 • Published 11 months ago

@asd14/serverless-universal-packer v1.5.0

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
11 months ago

Serverless plugin for custom packaging using BASH scripts with little to no dependencies.

  • :hammer_and_wrench: Flexibility: Don't rely on the existence of specialized plugins interfacing bundler X. Easily pivot when a better suited builder comes out.
  • :green_square: Low complexity: Specialized plugins mostly just proxy to the underlying bundler. You can do that yourself in a few command lines.
  • :repeat: Stay Updated: Keep dependencies updated without waiting for plugin updates.

Table of contents

:inbox_tray: Install

npm install --save-dev serverless-universal-packer

:wrench: Custom BASH scripts

sls-up_workspace-pack

Currently running npm pack inside a workspace/monorepo package will not include dependencies hoisted to the root node_modules folder. This is a :bug: known issue.

To get around this limitation, temporary use this script.

Internally it copies missing dependencies from the root node_modules into child package node_modules and runs npm pack. After the package is created, the original child node_modules is restored.

npx sls-up_workspace-pack
# /path/to/package.tgz

sls-up_convert-to-aws-zip

:books: Examples

:package: NPM

Without any additional packages, NPM provides a built-in mechanic to package your code using npm pack. This will create a .tgz file in the root of your project.

files : string[]

The optional files field is an array of file patterns that describes the entries to be included when your package is installed as a dependency

bundledDependencies : string[] | boolean

This defines an array of package names that will be bundled when publishing the package.

// package.json
{
  "files": ["src"],
  "bundledDependencies": true
}
# serverless.yml
plugins:
  - serverless-universal-packer

custom:
  universalPacker:
    script:
      - tgz_path=$(npx sls-up_workspace-pack | tail -n 1)
      - zip_path=$(npx sls-up_convert-to-aws-zip "$tgz_path" | tail -n 1)
      - echo "$zip_path"

:large_blue_diamond: Typescript

:zap: SWC

:computer: Development

git clone git@github.com:asd-xiv/serverless-universal-packer.git asd14.serverless-universal-packer

:scroll: Changelog

See the releases section for details.

1.5.0

11 months ago

1.4.0

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago