0.0.9 • Published 2 years ago
serverless-typescript-local-module v0.0.9
serverless-typescript-local-module
serverless-typescript-local-module is a serverless framework plugin that helps you directly inject local node modules to the modules of the project.
Why is this needed?
serverless-plugin-typescript, doesn't follow symlinks when copying node modules from the build directory. The issue that occurs is that the local node module you are using won't get added to the package.
How does it work?
This plugin simply does those steps for you
- Remove symlink from the node_module folder in your
.builddirectory - If it's a typescript local module builds it.
- Copies the module and it's node modules to the
.builddirectory node modules - Cleanups the typescript build directory
Installation
Install the package from npm repository
npm i --save-dev serverless-typescript-local-moduleInclude the plugin after the serverless-plugin-typescript on your serverless.yml file.
plugins:
- serverless-plugin-typescript
- serverless-typescript-local-moduleUsage
custom:
serverlessTypescriptModuleConfig:
packager: 'npm'
serverlessTypescriptLocalModule:
- name: "@localDependency/shared"
path: "../shared"
isTypescriptModule: true
tsConfigFile: 'tsconfig.json'
buildCommand: buildcustom:
serverlessTypescriptModuleConfig:
packager: 'npm'
serverlessTypescriptLocalModule:
- name: "@localDependency/shared"
path: "../shared"
isTypescriptModule: falsecustom:
serverlessTypescriptModuleConfig:
packager: 'pnpm'
serverlessTypescriptLocalModule:
- name: "@localDependency/shared"
path: "../shared"
isTypescriptModule: true
tsConfigFile: 'tsconfig.json'custom:
serverlessTypescriptModuleConfig:
packager: 'pnpm'
serverlessTypescriptLocalModule:
- name: "@localDependency/shared"
path: "../shared"
isTypescriptModule: true
buildCommand: build
skipBuildForTs: truecustom:
serverlessTypescriptModuleConfig:
packager: 'pnpm'
serverlessTypescriptLocalModule:
- name: "@localDependency/shared"
path: "../shared"
isTypescriptModule: trueConfig
- packager (npm|pnpm) - Which packager to use for omiting dev dependencies
Local modules definition
- Name: Your local module name
- Path: The path where this module is created
- isTypescriptModule (true|false) - Is the module a typescript one
- tsConfigFIle (not required - defaults to
tsconfig.json) - The name of the typescript config file. This only is allowed when isTypescriptModule is set to true - buildCommand (not required - defaults to
build) - Which script to use to build the project - skipBuildForTs (not required - defaults to
false) - If the plugin should skip building the module if it's a typescript module
NOTE: The plugin will fail if the build script isn't found