Download Latest Version nub-launcher-win32-arm64.exe (938.0 kB)
Home / v0.10.0
Name Modified Size InfoDownloads / Week
Parent folder
packslip.sigstore.json 2026-11-06 18.6 kB
nub-launcher-win32-arm64.exe.sha256 2026-11-06 95 Bytes
nub-launcher-win32-arm64.exe 2026-11-06 933.4 kB
nub-launcher-win32-x64.exe.sha256 2026-11-06 93 Bytes
nub-launcher-win32-x64.exe 2026-11-06 1.1 MB
nub-launcher-linux-arm64-musl.sha256 2026-11-06 96 Bytes
nub-launcher-linux-arm64-musl 2026-11-06 1.0 MB
nub-launcher-linux-arm64.sha256 2026-11-06 91 Bytes
nub-launcher-linux-arm64 2026-11-06 1.0 MB
nub-launcher-linux-x64-musl.sha256 2026-11-06 94 Bytes
nub-launcher-linux-x64-musl 2026-11-06 1.3 MB
nub-launcher-linux-x64.sha256 2026-11-06 89 Bytes
nub-launcher-linux-x64 2026-11-06 1.2 MB
nub-launcher-darwin-x64.sha256 2026-11-06 90 Bytes
nub-launcher-darwin-x64 2026-11-06 1.0 MB
nub-launcher-darwin-arm64.sha256 2026-11-06 92 Bytes
nub-launcher-darwin-arm64 2026-11-06 874.4 kB
nub-win32-arm64.zip.sha256 2026-11-06 86 Bytes
nub-win32-arm64.zip 2026-11-06 27.1 MB
nub-win32-x64.zip.sha256 2026-11-06 84 Bytes
nub-win32-x64.zip 2026-11-06 28.6 MB
nub-linux-arm64-musl.tar.gz.sha256 2026-11-06 94 Bytes
nub-linux-arm64-musl.tar.gz 2026-11-06 28.0 MB
nub-linux-arm64.tar.gz.sha256 2026-11-06 89 Bytes
nub-linux-arm64.tar.gz 2026-11-06 28.0 MB
nub-linux-x64-musl.tar.gz.sha256 2026-11-06 92 Bytes
nub-linux-x64-musl.tar.gz 2026-11-06 30.3 MB
nub-linux-x64.tar.gz.sha256 2026-11-06 87 Bytes
nub-linux-x64.tar.gz 2026-11-06 29.5 MB
nub-darwin-x64.tar.gz.sha256 2026-11-06 88 Bytes
nub-darwin-x64.tar.gz 2026-11-06 28.8 MB
nub-darwin-arm64.tar.gz.sha256 2026-11-06 90 Bytes
nub-darwin-arm64.tar.gz 2026-11-06 26.7 MB
Nub 0.10.0 source code.tar.gz 2026-11-06 48.4 MB
Nub 0.10.0 source code.zip 2026-11-06 50.1 MB
README.md 2026-11-06 27.5 kB
Totals: 36 Items   334.0 MB 1

Nub 0.10.0 brings dependency build scripts and --filter in line with pnpm 12, writes pnpm lockfiles that pnpm accepts in more layouts, and backfills util.debounce, util.throttle and the JSON.parse options proposal.

[!IMPORTANT] Five changes can surface in an existing project:

  • An unapproved dependency build script fails the install with ERR_NUB_IGNORED_BUILDS and exit 1. strictDepBuilds=false restores the warning (#1050)
  • A git dependency with a prepare script builds only when approved, and otherwise fails with ERR_NUB_GIT_DEP_PREPARE_NOT_ALLOWED (#1045)
  • --filter ./packages selects only a project whose directory is packages. Use ./packages/* or ./packages/** for the projects under it (#1056)
  • A --filter that selects no project exits 0, and --fail-if-no-match exits 1 (#1064)
  • nub rebuild <pkg> no longer approves the package it names (#1050)

Dependency build scripts

An install that meets a build script nobody has approved now fails, as under pnpm 12. It fails last, once node_modules is linked and the approved builds and the project's own scripts have run. Global installs and nubx stay non-strict.

:::console
$ nub install
dependencies:

+ core-js@3.40.0

ERR_NUB_IGNORED_BUILDS

  × Ignored build scripts: core-js@3.40.0
  help: Run `nub approve-builds` to pick which dependencies may run their
        build scripts, or set `strictDepBuilds=false` to install without them.
Area What changed Link
Denials nub approve-builds '!pkg' and --allow-build='!pkg' record a denial, and --allow-build=pkg refuses a package the project denies. An explicit false outranks dangerouslyAllowAllBuilds. #1050
Settings dangerouslyAllowAllBuilds and strictDepBuilds are read from .npmrc, the environment and, in a pnpm project, pnpm-workspace.yaml. #1050
nub rebuild Reports unapproved packages instead of passing over them. A filtered rebuild works in a shared-lockfile workspace, where it did nothing. #1050
Member approvals nub rebuild, nub ignored-builds and nub approve-builds read the same approvals as nub install, workspace members' included. #1050
Git dependency approval Approved by <name>@git+<repository> or the same key with #<commit>. A bare name, name@version or * does not approve one, and a denial installs it unbuilt. #1045
Git dependency builds A hosted dependency such as rimraf@github:isaacs/rimraf#v6.1.3 is now built. It linked with no dist/. The build no longer needs cp, which stock Windows lacks. #1045, fixes #885, #886
Project lifecycle stages Project scripts follow pnpm 12's stage lists in every project: install adds preprepare and postprepare, remove runs the uninstall stages, and --prod skips the prepare family. #1052

Workspace filters

Nub now uses pnpm 12's selector grammar and directory globs on every workspace command, including nub run (#1056).

:::diff

- nub run --filter ./packages build
+ nub run --filter './packages/*' build
Area What changed Link
Empty selection Does nothing and exits 0. install, remove and update print Scope: 0 of N workspace projects, and nub ci still cleans node_modules first, as pnpm's does. #1064
Workspace root run, exec, add and test drop the root from a selection that names no project. Other commands keep it. #1056
Repeated filtered install Reports up to date. It reinstalled and reran lifecycle scripts. #1055
recursiveInstall Read from pnpm-workspace.yaml in a pnpm project. #1055
Flags before the verb --filter-prod, -C and --dir work there. #1064
nub ls in a member Lists that member. #1064

Lockfile compatibility

Area What changed Link
Per-project pnpm lockfiles Under shared-workspace-lockfile=false, a member's lockfile matches pnpm 10's bytes on the tested workspaces. pnpm's --frozen-lockfile rejected the old form. #1060
Frozen installs of those trees nub install --frozen-lockfile passes on a tree Nub or pnpm 10 wrote, and a plain install keeps a member's locked versions. It failed on the first and re-resolved on the second. #1062
Rebuild in those trees nub rebuild finds a member's packages in the root store. It built nothing and exited 0. #1058
pnpm's env document pnpm-lock.yaml records a pinned pnpm in its leading document, so pnpm 11 and 12 accept Nub's lockfile under --frozen-lockfile, including after nub pm use pnpm. #1054
Local paths in pnpm-lock.yaml link:./x is written link:x and file:./x is written file:x, and empty packages: and snapshots: are omitted. A package spelled with ./ relinks on its first install after upgrading. #1079
A file: dependency outside the workspace A member's file: directory above the workspace root installs under nub ci and --frozen-lockfile. It failed with is not a directory. #1004
package-lock.json An optional dependency of a dev dependency is flagged dev and optional. It was devOptional. #1088, fixes #1087
Optional peers Every resolved optional peer is linked next to its package, a plain install repairs an existing nub.lock, and bun.lock records peers as bun writes them. #1040, fixes #937
Catalog updates nub update -r raises a ^ or ~ catalog entry to the version it resolved, and a catalog-only lockfile change is written instead of skipped. #1057
Overrides on catalog: A range-keyed override matches a catalog: dependency by its reference, as under pnpm. #1039, fixes #771

Package manager

Area What changed Link
nub pack and nub publish Never pack a file from outside the package. A symlinked or absolute main, or a symlinked README, put that file in the tarball. #1036
workspace: specs Both commands resolve workspace: and catalog: specs and apply publishConfig. The specs shipped verbatim, which made the package uninstallable. #1036, fixes #817
nub update at a workspace root Keeps members' locked versions. It re-resolved every member and bumped packages nobody named. #1043, fixes #1001
patchedDependencies Git renames, header-only deletions, empty new files and mode changes apply as under pnpm 11. A patched executable keeps its mode. #1037, fixes #844, #845
nub patch-commit Replaces the patch file with one consolidated patch instead of appending a section per round. nub patch resolves its target through the lockfile. #1010
Workspace .npmrc A command run in a member reads the root's registry and auth. The member's file layers on top under pnpm 10, Yarn 1 and a Nub project, and is not read under pnpm 11, npm or Bun. #1051
DNS Hosts resolve through the OS with an in-process cache, so VPN-scoped DNS, /etc/resolver/* and Windows NRPT apply. #953, fixes #942
Broken downloads A tarball whose connection breaks off mid-body is downloaded again. It failed the install. #1078
Failed installs An install that fails after a virtual-store mode change keeps node_modules. It removed the tree before resolving. #1035, fixes #841
--offline Refuses an uncached full packument fetch, which went to the network. #1059
file: dependencies on macOS Two projects with a file: dependency at the same relative path get their own files. They shared whichever installed first, and a tarball rebuilt in place stayed stale. #995
Overrides to a local copy A registry package whose dependency is overridden to a file: path is ejected into the project. The link dangled and require failed with Cannot find module. #1080
Store locks on NFS Prune, maintenance and GC lock files open readable, so shared locks work on Linux NFS. They failed with EBADF. #1046, fixes #1028
Add-time refusals --allow-similar-name and --allow-new-name each clear their own check, and every refusal names its flag and allowedUnpopularPackages. #1074
Aliases and bins A dependency under its own name keeps its bin over an alias of the same package, so tsc stays with typescript when typescript5 is also installed. #1074
Remix 3 ^3.0.0, 3.1.0 and >=2 keep the shared store. Only a spec that may select a 3.0.0 prerelease gets a project-local store. #1042, fixes #927
pnpm 12 through nub pm shim The pnpm and pnpx shims run pnpm 12. They failed with SyntaxError: Unexpected identifier 'is'. #983
Mismatched nub pm shim projects Registry and account commands such as npm login pass through to the system manager instead of being refused. #1021
nub pm use nub The Turborepo heads-up says which versions recognize Nub. #1034
Peer placements A package with peer-dependent copies reuses its file index and verified store read. Remapping across eight peer contexts went from 1.647 ms to 1.411 ms in a stage benchmark on Linux x86-64. #984

Runtime

Area What changed Link
util.debounce, util.throttle Backfilled from Node 26.10 on older supported versions, and typed in @nubjs/types. #974
JSON.parse options JSON.parse(text, { freeze, preferNullPrototype }) is polyfilled from the Stage 2.7 proposal, and typed in @nubjs/types. #992
YAML and TOML imports Values keep NaN, -0, dates and own __proto__ keys. A TOML date is a Date, and a TOML integer past 2^53 is a BigInt. It threw on import. #1067
UV_THREADPOOL_SIZE Assigning it in process.env before the first pool use sizes the pool, as under Node. Nub's preload had already built the pool. #1013
Temporal The polyfilled global has the spec's property attributes. It was a frozen module namespace. #1015
require() of a replaced package @js-temporal/polyfill, urlpattern-polyfill and abort-controller load the installed package. They failed with ENOENT on Node 22.15+. #1061
Decorated files 400 decorated ESM files on Node 26.11 start in 0.18s, down from 0.99s, on macOS arm64 with a warm transpile cache. #796, fixes #795
Startup Augmented startup no longer loads internal/file on Node 20+. #556
Entry tsconfig check The check follows the entry's real path and skips a dependency's own config. A workspace bin run through its node_modules link failed before starting. #1041, fixes #1032
Unreadable tsconfig The diagnostic names the OS error. It read the same as a missing file. #899
Varlock Nub stands down when Varlock already resolved the schema or is the program being launched. varlock run --path ./config exited 1. #724
Terminal jobs A child that stops on its first terminal read resumes after the foreground handoff. It stayed stopped. #998
Test and watch modes --test=<value>, --watch=<value>, --watch_path and a watch flag in NODE_OPTIONS stay out of the children they start, which could recurse without end. nodeOptions in nub.jsonc refuses a watch flag. #1075, #1086

Node discovery and provisioning

Area What changed Link
latest and other aliases Aliases and partial pins select releases only. A .nvmrc of latest failed with a 404 once nodejs.org listed a 27.0.0 alpha. #1033
Version-manager shims The version behind a mise, asdf, nodenv or Volta shim is read on every launch. A cached version passed Node 26 flags to Node 24, which exited 9. #1049
Launch loops A PATH node that hands the launch back to Nub, or links back to it, is skipped. Any chain of Nub processes stops at 64 with ERR_NUB_LAUNCH_LOOP. #1044, #1063, #1073, fixes #832
Windows runtime cache Validates the cache directory rather than every ancestor. A broad grant on the user's profile made each command print warnings and run without the runtime. #1047, fixes #908

Install and upgrade

Area What changed Link
nub upgrade under mise Detects a mise install and runs mise upgrade --bump nub. It took the npm channel, which planted a second global copy. #571
Release assets Each stable release carries packslip.sigstore.json, a signed manifest of its archives, so mise can install Nub straight from the release. #982

Docs, testing and internals

  • Every docs page was restructured and tightened (#994).
  • Integration suites run against an offline Verdaccio registry with committed fixtures (#765).
  • CI's macOS jobs moved to macos-15 after GitHub retired macos-14 (4a599b6).
  • Only the approved release run can write a stable tag (#1017).

What's Changed

New Contributors

Full Changelog: https://github.com/nubjs/nub/compare/v0.9.7...v0.10.0

Source: README.md, updated 2026-11-06