@asd14/serverless-universal-packer

1.5.0 • Public • Published

📦 serverless-universal-packer

CircleCI Coverage Status Dependencies NPM Version Semantic Release with Conventional Commits

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

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

Table of contents

📥 Install

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

🔧 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 🐛 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

📚 Examples

📦 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"

🔷 Typescript

SWC

💻 Development

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

📜 Changelog

See the releases section for details.

Package Sidebar

Install

npm i @asd14/serverless-universal-packer

Weekly Downloads

8

Version

1.5.0

License

BSD-3-Clause

Unpacked Size

526 kB

Total Files

16

Last publish

Collaborators

  • andreid