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).
62 lines
1.7 KiB
JSON
62 lines
1.7 KiB
JSON
{
|
|
"name": "mise-action",
|
|
"description": "mise tool setup action",
|
|
"version": "4.0.1",
|
|
"author": "jdx",
|
|
"type": "module",
|
|
"private": true,
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/jdx/mise-action.git"
|
|
},
|
|
"keywords": [
|
|
"actions",
|
|
"mise",
|
|
"setup"
|
|
],
|
|
"exports": {
|
|
".": "./dist/index.js"
|
|
},
|
|
"scripts": {
|
|
"all": "npm run format:write && npm run lint && npm run package",
|
|
"bundle": "npm run format:write && npm run package",
|
|
"format:check": "prettier --check **/*.ts",
|
|
"format:write": "prettier --write **/*.ts",
|
|
"lint": "eslint . && npm run format:check",
|
|
"package": "rimraf ./dist && rollup --config rollup.config.mjs",
|
|
"package:watch": "npm run package -- --watch",
|
|
"version": "./scripts/version.sh",
|
|
"prepare": "husky"
|
|
},
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@actions/cache": "^6.0.0",
|
|
"@actions/core": "^3.0.0",
|
|
"@actions/exec": "^3.0.0",
|
|
"@actions/glob": "^0.6.0",
|
|
"@actions/io": "^3.0.0",
|
|
"@types/handlebars": "^4.0.40",
|
|
"handlebars": "^4.7.8"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3.2.0",
|
|
"@eslint/js": "^10.0.0",
|
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
"@rollup/plugin-json": "^6.1.0",
|
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
"@rollup/plugin-typescript": "^12.0.0",
|
|
"@types/eslint__js": "^8.42.3",
|
|
"@types/node": "^24",
|
|
"eslint": "^10.0.0",
|
|
"globals": "^17.0.0",
|
|
"husky": "^9.1.7",
|
|
"jest": "^30",
|
|
"js-yaml": "^4.1.0",
|
|
"prettier": "^3.4.1",
|
|
"rimraf": "^6.0.0",
|
|
"rollup": "^4.0.0",
|
|
"rollup-plugin-license": "^3.7.1",
|
|
"typescript": "^6.0.0",
|
|
"typescript-eslint": "^8.16.0"
|
|
}
|
|
}
|