@xn-sakina/vary
v1.4.0
Published
Changesets command shortcut sets
Downloads
16
Maintainers
Readme
@xn-sakina/vary
Changesets command shortcut sets
Install
# pnpm v8
pnpm add -D -w @xn-sakina/vary
# pnpm v7
pnpm add -DW @xn-sakina/vary
Usage
In monorepo root initial all changesets
shortcut commands:
pnpm vary init
Commands
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
Example
Case 1: 3 steps normal publish
# 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
Case 2: 2 steps quick publish
# 1. Select will publish pkg and write changelog
pnpm push
# 2. Direct publish to npm, still not need build pkg
pnpm release:quick
Case 3: only publish package
# Only execute publish
pnpm release:only
Sync packages
Sync command
# 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
Sync Github actions
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
Napi publish
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
License
MIT