Node Packaged Masterfully

    @antfu/ni
    TypeScript icon, indicating that this package has built-in type declarations

    0.17.2 • Public • Published

    ni

    npm i in a yarn project, again? F**k!

    ni - use the right package manager


    npm i -g @antfu/ni
    
    ni
    

    npm · yarn · pnpm · bun


    ni - install

    ni
    
    # npm install
    # yarn install
    # pnpm install
    # bun install
    ni vite
    
    # npm i vite
    # yarn add vite
    # pnpm add vite
    # bun add vite
    ni @types/node -D
    
    # npm i @types/node -D
    # yarn add @types/node -D
    # pnpm add -D @types/node
    # bun add -d @types/node
    ni --frozen
    
    # npm ci
    # yarn install --frozen-lockfile
    # pnpm install --frozen-lockfile
    # bun install --no-save
    ni -g eslint
    
    # npm i -g eslint
    # yarn global add eslint
    # pnpm add -g eslint
    # bun add -g eslint
    
    # this uses default agent, regardless your current working directory

    nr - run

    nr dev --port=3000
    
    # npm run dev -- --port=3000
    # yarn run dev --port=3000
    # pnpm run dev -- --port=3000
    # bun run dev --port=3000
    nr
    
    # interactively select the script to run
    # supports https://www.npmjs.com/package/npm-scripts-info convention
    nr -
    
    # rerun the last command

    nx - execute

    nx vitest
    
    # (not available for bun)
    # npx vitest
    # yarn dlx vitest
    # pnpm dlx vitest

    nu - upgrade

    nu
    
    # (not available for bun)
    # npm upgrade
    # yarn upgrade
    # pnpm update
    nu -i
    
    # (not available for npm & bun)
    # yarn upgrade-interactive
    # pnpm update -i

    nun - uninstall

    nun webpack
    
    # npm uninstall webpack
    # yarn remove webpack
    # pnpm remove webpack
    # bun remove webpack
    nun -g eslint
    
    # npm uninstall -g eslint
    # yarn global remove eslint
    # pnpm remove -g eslint
    # bun remove -g eslint

    nci - clean install

    nci
    
    # npm ci
    # yarn install --frozen-lockfile
    # pnpm install --frozen-lockfile
    # bun install --no-save

    if the corresponding node manager is not present, this command will install it globally along the way.


    na - agent alias

    na
    
    # npm
    # yarn
    # pnpm
    # bun
    na run foo
    
    # npm run foo
    # yarn run foo
    # pnpm run foo
    # bun run foo

    Change Directory

    ni -C packages/foo vite
    nr -C playground dev

    Config

    ; ~/.nirc
    
    ; fallback when no lock found
    defaultAgent=npm # default "prompt"
    
    ; for global installs
    globalAgent=npm
    # ~/.bashrc
    
    # custom configuration file path
    export NI_CONFIG_FILE="$HOME/.config/ni/nirc"

    How?

    ni assumes that you work with lockfiles (and you should)

    Before it runs, it will detect your yarn.lock / pnpm-lock.yaml / package-lock.json / bun.lockb to know current package manager (or packageManager field in your packages.json if specified), and runs the corresponding commands.

    Trouble shooting

    Conflicts with PowerShell on Windows

    PowerShell come with a built-in alias ni for New Item. To remove the alias in favor of this package:

    PowerShell 5.x

    Create or edit file C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1, adding following line:

    Remove-Item Alias:ni -Force -ErrorAction Ignore
    PowerShell 7.x

    Create or edit file C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1, adding following line:

    Remove-Alias -Name ni -Force

    Keywords

    none

    Install

    npm i @antfu/ni

    DownloadsWeekly Downloads

    8,204

    Version

    0.17.2

    License

    MIT

    Unpacked Size

    510 kB

    Total Files

    36

    Last publish

    Collaborators

    • antfu