mirror of
https://github.com/jdx/mise-action.git
synced 2026-05-15 14:20:32 +00:00
Switches the project's package-manager surface from a mix of npm / pnpm / bun (different commands in different files) to a single tool: [aube](https://aube.en.dev), en.dev's pnpm-compat package manager (native Rust, fast, drops cleanly into pnpm / npm-compatible workflows). ## What changed - **Workflows** (`.github/workflows/*.yml`): every `npm ci` → `aube ci`; every `npm run X` → `aube run X`. The `actions/setup-node@…` step still pins Node, then a new `jdx/mise-action@v4` step with `install_args: aube` installs aube. The `cache: npm` directive on `setup-node` is dropped (aube uses its own store under `~/.cache/aube`; reusing the npm cache wouldn't help). - **`mise.toml`**: every task that ran `npm run X` or `bun run X` now runs `aube run X`. Added `aube = '1.3'` to the tool list so `mise install` provisions it locally. - **`CLAUDE.md`**: development command snippets updated to `aube install` / `aube run all` etc. ## What didn't change - **`package-lock.json`** stays as the canonical lockfile — aube reads it directly, no separate `aube-lock.yaml` is generated. Running `npm install` still works for any dev who hasn't switched to aube yet. - **`package.json` scripts** still use `npm run X` for nested invocations (e.g. `"all": "npm run format:write && …"`). The literal `npm` in those works for both npm callers and aube callers (aube exec'd shell finds `npm` in PATH; the inner invocation reads the same package.json scripts). Avoiding the rewrite to `aube run X` here keeps the scripts PM-agnostic. - **`dist/`** is byte-identical after `aube run all` — parity with npm-built dist verified locally before this commit. ## `.npmrc` Adds a single line: `node-linker=hoisted`. This is the pnpm/aube key that forces a flat, npm-style `node_modules` layout instead of the default symlink/virtual-store layout. Required because `rollup --configPlugin @rollup/plugin-typescript` needs to resolve the plugin from cwd's node_modules; the isolated layout puts rollup under `node_modules/.aube/...` where standard module resolution can't reach back to the project root for the plugin. npm reads `.npmrc` too but ignores `node-linker` (npm always installs flat), so the file is safe for both PMs. ## Why aube Single tool replacing three: less context-switching for contributors, fewer places to run `npm audit` / `bun upgrade` / `pnpm dedupe`, and aube's resolver is faster than npm's (the `aube install` cold-cache run takes ~3s vs `npm ci` at ~10s for this repo's deps).
110 lines
1.8 KiB
Text
110 lines
1.8 KiB
Text
# Dependency directory
|
|
node_modules
|
|
|
|
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
|
# Logs
|
|
logs
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
lerna-debug.log*
|
|
|
|
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
|
|
|
# Runtime data
|
|
pids
|
|
*.pid
|
|
*.seed
|
|
*.pid.lock
|
|
|
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
lib-cov
|
|
|
|
# Coverage directory used by tools like istanbul
|
|
coverage
|
|
*.lcov
|
|
|
|
# nyc test coverage
|
|
.nyc_output
|
|
|
|
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
|
.grunt
|
|
|
|
# Bower dependency directory (https://bower.io/)
|
|
bower_components
|
|
|
|
# node-waf configuration
|
|
.lock-wscript
|
|
|
|
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
build/Release
|
|
|
|
# Dependency directories
|
|
jspm_packages/
|
|
|
|
# TypeScript v1 declaration files
|
|
typings/
|
|
|
|
# TypeScript cache
|
|
*.tsbuildinfo
|
|
|
|
# Optional npm cache directory
|
|
.npm
|
|
|
|
# Optional eslint cache
|
|
.eslintcache
|
|
|
|
# Optional REPL history
|
|
.node_repl_history
|
|
|
|
# Output of 'npm pack'
|
|
*.tgz
|
|
|
|
# Yarn Integrity file
|
|
.yarn-integrity
|
|
|
|
# dotenv environment variables file
|
|
.env
|
|
.env.test
|
|
|
|
# parcel-bundler cache (https://parceljs.org/)
|
|
.cache
|
|
|
|
# next.js build output
|
|
.next
|
|
|
|
# nuxt.js build output
|
|
.nuxt
|
|
|
|
# vuepress build output
|
|
.vuepress/dist
|
|
|
|
# Serverless directories
|
|
.serverless/
|
|
|
|
# FuseBox cache
|
|
.fusebox/
|
|
|
|
# DynamoDB Local files
|
|
.dynamodb/
|
|
|
|
# OS metadata
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Ignore built ts files
|
|
__tests__/runner/*
|
|
|
|
# IDE files
|
|
.idea
|
|
.vscode
|
|
*.code-workspace
|
|
|
|
# Generated by `aube install` to record build-script approvals.
|
|
# We've chosen not to commit our approval state — the build doesn't
|
|
# need any package's install scripts to run, and the file gets
|
|
# regenerated each install anyway. The harmless "ignored build
|
|
# scripts" warning in `aube install` output is the cost.
|
|
pnpm-workspace.yaml
|