1.4.0 • Published 4 months ago

@xn-sakina/vary v1.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@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

commandaliasdescription
clean:outputcleanClean all pkgs build output (dist/build/es)
initiInit changeset shortcut command sets
pushpRefresh changeset config file ignore field then run changeset command (All private: true packages will add to ignore)
releaserFirst build all pkgs(npm run build), then publish to npm
release:onlyroOnly use changeset publish to npm
release:quickrqFirst up pkgs version, then publish to npm
vpversion-packagesRun changeset version command for up pkgs version
syncsSync all public packages to some registry
napi-publishnpPublish 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

1.4.0

4 months ago

1.2.0

7 months ago

1.3.4

6 months ago

1.3.3

6 months ago

1.3.2

6 months ago

1.3.1

6 months ago

1.3.0

6 months ago

1.2.1

7 months ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago