Examples

@nx/js:swc can inline non-buildable libraries by opt-in to Inlining mode with external option.

libs/ts-lib/project.json
1{ 2 "build": { 3 "executor": "@nx/js:swc", 4 "options": { 5 "outputPath": "dist/libs/ts-lib", 6 "main": "libs/ts-lib/src/index.ts", 7 "tsConfig": "libs/ts-lib/tsconfig.lib.json", 8 "assets": ["libs/ts-lib/*.md"], 9 "external": "all" 10 } 11 } 12} 13

npx nx build ts-lib --external=all

@nx/js:swc can also inline buildable libraries by setting external: 'none'

libs/ts-lib/project.json
1{ 2 "build": { 3 "executor": "@nx/js:swc", 4 "options": { 5 "outputPath": "dist/libs/ts-lib", 6 "main": "libs/ts-lib/src/index.ts", 7 "tsConfig": "libs/ts-lib/tsconfig.lib.json", 8 "assets": ["libs/ts-lib/*.md"], 9 "external": "none" 10 } 11 } 12} 13

npx nx build ts-lib --external=none

Options

main

Required
string

The name of the main entry-point file.

outputPath

Required
string

The output path of the generated files.

tsConfig

Required
string

The path to the Typescript configuration file.

additionalEntryPoints

Array<string>

Additional entry-points to add to exports field in the package.json file.

generateExportsField

exports
boolean
Default: false

Update the output package.json file's 'exports' field. This field is used by Node and bundles.

skipTypeCheck

boolean
Default: false

Whether to skip TypeScript type checking.

assets

Array<oneOf [object , string]>
Default: []

List of static assets.

clean

boolean
Default: true

Remove previous output before build.

externalBuildTargets

Array<string>
Default: [build]

List of target names that annotate a build target for a project

includeIgnoredAssetFiles

boolean
Default: false

Include files that are ignored by .gitignore and .nxignore when copying assets. WARNING: Ignored files are not automatically considered when calculating the task hash. To ensure Nx tracks these files for caching, add them to your target's inputs using 'dependentTasksOutputs' or 'runtime' configuration.

swcrc

string

The path to the SWC configuration file. Default: .swcrc

swcExclude

Hidden
Array<anything>
Default: [./src/**/.*.spec.ts$,./**/.*.spec.ts$,./src/**/jest-setup.ts$,./**/jest-setup.ts$,./**/.*.js$]

List of SWC Glob/Regex to be excluded from compilation (https://swc.rs/docs/configuration/compilation#exclude).

stripLeadingPaths

boolean
Default: false

Remove leading directory from output (e.g. src). See: https://swc.rs/docs/usage/cli#--strip-leading-paths

watch

boolean
Default: false

Enable re-building when files change.

generateLockfile

Internal
boolean
Default: false

Generate a lockfile (e.g. package-lock.json) that matches the workspace lockfile to ensure package versions match.

external

Deprecated
oneOf [string, Array<string>]

A list projects to be treated as external. This feature is experimental

Make sure all dependencies are buildable by running nx g @nx/js:setup-build. This option will be removed in Nx 20.