npm_link_package rule

npm_link_package

"Links an npm package to node_modules if link is True.

When called at the root_package, a package store target is generated named link__{bazelified_name}__store.

When linking, a {name} target is generated which consists of the node_modules/<package> symlink and transitively its package store link and the package store links of the transitive closure of deps.

When linking, {name}/dir filegroup is also generated that refers to a directory artifact can be used to access the package directory for creating entry points or accessing files in the package.

PARAMETERS

NameDescriptionDefault Value
nameThe name of the link target to create if link is True. For first-party deps linked across a workspace, the name must match in all packages being linked as it is used to derive the package store link target name.none
root_packagethe root package where the node_modules package store is linked to""
linkwhether or not to link in this package If false, only the npm_package_store target will be created if this is called in the root_package.True
srcthe npm_package target to link; may only to be specified when linking in the root packageNone
depslist of npm_package_store; may only to be specified when linking in the root package{}
fail_if_no_linkwhether or not to fail if this is called in a package that is not the root package and link is FalseTrue
auto_manualwhether or not to automatically add a manual tag to the generated targets Links tagged “manual” dy default is desirable so that they are not built by bazel build ... if they are unused downstream. For 3rd party deps, this is particularly important so that 3rd party deps are not fetched at all unless they are used.True
visibilitythe visibility of the link target["//visibility:public"]
kwargssee attributes of npm_package_store rulenone

RETURNS

Label of the npm_link_package_store if created, else None