faast.js

faast.js

  • Docs
  • API
  • Community
  • GitHub
  • Blog

faastjs > CommonOptions > packageJson

CommonOptions.packageJson property

Specify a package.json file to include with the code package.

Signature:

packageJson?: string | object;

Remarks

By default, faast.js will use webpack to bundle dependencies your remote module imports. In normal usage there is no need to specify a separate package.json, as webpack will statically analyze your imports and determine which files to bundle.

However, there are some use cases where this is not enough. For example, some dependencies contain native code compiled during installation, and webpack cannot bundle these native modules. such as dependencies with native code. or are specifically not designed to work with webpack. In these cases, you can create a separate package.json for these dependencies and pass the filename as the packageJson option. If packageJson is an object, it is assumed to be a parsed JSON object with the same structure as a package.json file (useful for specifying a synthetic package.json directly in code).

The way the packageJson is handled varies by provider:

  • local: Runs npm install in a temporary directory it prepares for the function.

  • aws: Recursively calls faast.js to run npm install inside a separate lambda function specifically created for this purpose. Faast.js uses lambda to install dependencies to ensure that native dependencies are compiled in an environment that can produce binaries linked against lambda's execution environment. Packages are saved in a Lambda Layer.

For AWS, if CommonOptions.useDependencyCaching is true (which is the default), then the Lambda Layer created will be reused in future function creation requests if the contents of packageJson are the same.

The FAAST_PACKAGE_DIR environment variable can be useful for debugging packageJson issues.

  • CommonOptions.packageJson property
  • Remarks
faast.js
Docs
IntroductionAPI ReferenceContributingExamples
Community
DiscordTwitterStack Overflow
More
BlogUser Showcase
Copyright © 2025 Andy Chou