On this page
npm release target that manages version tracking in package.json and scaffolds CI workflows for automated publishing to the npm registry.
#rlsbl.targets.npm
#rlsbl.targets.npm
npm release target that manages version tracking in package.json and scaffolds CI workflows for automated publishing to the npm registry.
#NpmTarget
Release target for npm/Node.js projects (package.json).
#name
def name(self)#read_name
def read_name(self, dir_path, ctx)Read the package name from package.json.
#read_metadata
def read_metadata(self, dir_path)Read license and description from package.json.
#publication_probe
def publication_probe(self, dir_path, version, ctx=None)Probe npm registry for a specific version of this package.
#_detect_package_manager
def _detect_package_manager(self, dir_path)Detect the package manager by walking up from dir_path to the git root.
Checks each directory for lock files in priority order:
- pnpm-lock.yaml -> "pnpm"
- yarn.lock -> "yarn"
- package-lock.json -> "npm"
Stops at the git root (.git directory) or filesystem root. Returns "npm" as fallback if no lock file is found.
#read_version
def read_version(self, dir_path)Read the version from package.json in the given directory.
#write_version
def write_version(self, dir_path, version, ctx)Write a new version to package.json, preserving formatting.
Returns a list of relative file paths that were modified.
#version_file
def version_file(self, dir_path=None)Return the version file name for npm projects.
#tag_format
def tag_format(self, version)Return the git tag string for an npm release version.
#template_dir
def template_dir(self)Return the path to the npm-specific template directory.
#template_vars
def template_vars(self, dir_path, ctx)Extract template variables from the target project's package.json.
#template_mappings
def template_mappings(self, ctx)Return CI and npmignore template mappings, selecting the CI template by package manager.
#check_project_exists
def check_project_exists(self, dir_path)Return True if package.json exists in dir_path.
#get_project_init_hint
def get_project_init_hint(self)Return a hint for initializing an npm project.
#dev_install_command
def dev_install_command(self, project_dir)Return install specs for npm link (global) and npm install (local).
#run_tests
def run_tests(self, *, project_dir=None, workspace_root=None, skip_sync=False, config=None, check_timeout=None)Run the package's npm test script.
#find_dead_modules
def find_dead_modules(self, root, *, exclude_dirs=None, suppress=frozenset())Breadth-first reachability from the package's entry points.
#find_circular_dependencies
def find_circular_dependencies(self, root, *, exclude_dirs=None)Detect circular imports between the package's source files.
#normalize_package_name
def normalize_package_name(self, raw_name)npm folds a name by removing hyphens, underscores and dots.
#query_latest_version
def query_latest_version(self, name)Ask the npm registry for the latest published version.
#claim_placeholder
def claim_placeholder(self, name, tmpdir)Publish a version 0.0.0 package.json to reserve name on npm.
#yank
def yank(self, project_dir, version, tag, *, reason=None, dry_run=False)Deprecate a published version on the npm registry.
npm has no delete; npm deprecate attaches a warning that every install of that exact version prints.