npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

nono-migration

v1.4.1

Published

CLI tool to manage migration changes and user changes separately for React Native miniapp projects

Readme

nono-migration

A CLI tool to manage migration changes and user changes separately for React Native miniapp projects. This tool helps you maintain clean git history by separating migration-generated changes from your manual code changes.

Features

  • 🔄 Smart Migration Management: Automatically separates migration changes from user changes
  • 📦 Git Integration: Intelligent staging and committing with change separation
  • 🎯 Exclude List: Track files that should have migration changes excluded from commits
  • 📸 Snapshot System: Maintains snapshots of user and migration changes
  • 🚀 Easy Updates: Simple command to update migration tools

Installation

Install globally using npm:

npm install -g nono-migration

Or using yarn:

yarn global add nono-migration

Usage

Initialize Migration

Run this command when you want to start using the migration tool:

nono migration
# or
nono start
# or
nono -m

This command will:

  1. Snapshot your current changes to user-changes.json
  2. Run momo-migration
  3. Save migration changes to migration-changes.json
  4. Create .git-exclude-list with files changed by migration
  5. Add nono scripts to your package.json
  6. Update ports from 8181 to 8182 if your package name is vn.momo.profile or @momo-mini-app/profile
  7. Add tracking files to .gitignore

Commit Changes

Use this command instead of git commit to commit only your changes:

nono commit -m "fix(chat): SC-1 your commit message"

With additional options:

nono commit -m "fix(chat): SC-1 message" --amend
nono commit --amend --no-edit

This command will:

  1. Compare files in .git-exclude-list with snapshots in migration-changes.json
  2. Stage only the differences (your changes)
  3. Keep migration changes unstaged
  4. Commit with your message
  5. Preserve tracking files for next commit

Update Migration Tools

Update @momo-platform/momo-migration and @momo-platform/momo-cli to latest versions:

nono update
# or
nono -u

Version

Check the installed version:

nono --version
# or
nono -v

How It Works

Example Workflow

Step 1: Initial State

  • You have a modified file: src/api/profileApi.ts

Step 2: Run Migration

nono migration

The tool will:

  • Save src/api/profileApi.ts to user-changes.json
  • Run momo-migration which modifies multiple files:
    • package.json
    • .gitlab-ci.yml
    • app.json
    • babel.config.json
    • And more...
  • Save these migration changes to migration-changes.json
  • Create .git-exclude-list with all migration-modified files

Step 3: Make More Changes

  • Edit package.json (which is in .git-exclude-list)
  • Edit src/components/AvatarProfile.tsx (not in exclude list)

Git status will show:

  • Staged: package.json
  • Unstaged: All migration files + your new changes

Step 4: Commit Your Changes

nono commit -m "fix(chat): SC-1 update profile logic"

The tool will:

  • Compare package.json with snapshot in migration-changes.json
  • Separate your changes (A) from migration changes (B)
  • Stage only your changes: package.json (A), src/api/profileApi.ts, src/components/AvatarProfile.tsx
  • Keep migration changes unstaged
  • Commit only your changes
  • Preserve tracking files for next commit

File Structure

After running nono migration, you'll have these tracking files:

  • migration-changes.json: Snapshot of all changes made by migration
  • user-changes.json: Snapshot of your changes before migration
  • .git-exclude-list: List of files to separate during commit

These files are automatically added to .gitignore.

Scripts in package.json

The migration command adds these scripts:

{
  "scripts": {
    "nono:commit": "nono commit",
    "nono:migration": "nono migration",
    "nono:update": "nono update"
  }
}

You can also use them via yarn/npm:

yarn nono:commit -m "message"
yarn nono:migration
yarn nono:update

Development

Build

npm run build

Development Mode

npm run dev

Local Testing

npm link

Then you can use nono command globally in your terminal.

Requirements

  • Node.js >= 14.0.0
  • Git

License

MIT

Author

Built with ❤️ for React Native miniapp development teams.