Changesets command shortcut sets
# pnpm v8
pnpm add -D -w @xn-sakina/vary
# pnpm v7
pnpm add -DW @xn-sakina/vary
In monorepo root initial all changesets
shortcut commands:
pnpm vary init
command | alias | description |
---|---|---|
clean:output |
clean |
Clean all pkgs build output (dist /build /es ) |
init |
i |
Init changeset shortcut command sets |
push |
p |
Refresh changeset config file ignore field then run changeset command (All private: true packages will add to ignore ) |
release |
r |
First build all pkgs(npm run build ), then publish to npm |
release:only |
ro |
Only use changeset publish to npm |
release:quick |
rq |
First up pkgs version, then publish to npm |
vp |
version-packages |
Run changeset version command for up pkgs version |
sync |
s |
Sync all public packages to some registry |
napi-publish |
np |
Publish multi platforms pkgs to npm with napi |
# 1. Select will publish pkg and write changelog
pnpm push
# 2. Upgrade pkgs version
pnpm vp
# 3. Build all pkgs output(auto `npm run build`) then publish to npm
pnpm release
# 1. Select will publish pkg and write changelog
pnpm push
# 2. Direct publish to npm, still not need build pkg
pnpm release:quick
# Only execute publish
pnpm release:only
# Will auto sync all public packages to cnpm by default
pnpm vary sync
Use process.env.VARY_SYNC_AGENTS
to sync multi registries:
# Sync to `cnpm` and `tnpm`
VARY_SYNC_AGENTS=cnpm,tnpm pnpm vary sync
name: Sync packages
on:
push:
# An event will not be created when you create more than three tags at once.
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#create
tags:
- '*'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: 18.x
registry-url: 'https://registry.npmjs.com/'
- name: Sync dependencies
run: |
npm i -g cnpm @xn-sakina/vary
vary sync
Manually publish napi packages without napi-build
and build.rs
pnpm vary napi-publish
# or `pnpm vary np`
Publish root package:
pnpm vary np --root
Publish wasm package:
# for Node.js
pnpm vary np --wasm
# for web
pnpm vary np --wasm-web
Wasm-opt:
pnpm vary np --wasm-opt ./target/wasm/index.wasm
(Experiment) Publish wasm with using napi-rs (wasi):
pnpm vary np --napi-wasm
MIT