@geoffcodesthings/nyan
v1.0.2
Published
A tool that unifies NPM and Yarn
Downloads
1
Readme
nyan
nyan
is a CLI, inspired by narn, that detects what package manager your current project is using. If package-lock.json
exists, it will spawn npm
commands. If yarn.lock
exists, yarn
is used. Unlike narn, nyan
allows you to use whichever syntax you prefer. Prefer npm
? Use npm
commands and arguments. Yarn user? Use yarn
commands and arguments. It's up to you, all commands will be translated to the correct syntax automatically.
Getting Started
Installation
# Using npm
npm intsall -g @geoffcodesthings/nyan
# Using yarn
yarn global add @geoffcodesthings/nyan
Configuration
There is only one configuration option, preferredManager
. By default, it is set to yarn
.
This option is used when no package-lock.json or yarn.lock is found. This means you can use
nyan
to initialize a project.
To change this, run:
nyan config set preferredManager npm
Available options for
preferredManager
areyarn
andnpm
.
Usage
Yarn-like syntax
# Install from package.json
nyan
# Add a new dependency
nyan add lodash
# Add a dev dependency
nyan add --dev jest
nyan add -D jest
# To remove a dependency
nyan remove lodash
# Run a script from the package.json
nyan test
nyan dev --watch
# Apply version bump
nyan version <newversion>
# Publish to registry
nyan publish
# Upgrade dependencies
nyan upgrade
nyan upgrade --latest
# Initialize a project
nyan init
nyan init -y
# View the installed version of nyan
nyan -v
nyan --version
NPM-like syntax
# Install from package.json
nyan install
# Add a new dependency
nyan install lodash
nyan install --save lodash
# Add a dev dependency
nyan install --save-dev jest
nyan install -D jest
# To remove a dependency
nyan uninstall lodash
# Run a script from the package.json
nyan run test
nyan run dev --watch
# Apply version bump
nyan version <newversion>
# Publish to registry
nyan publish
# Upgrade dependencies
nyan update
# Initialize a project
nyan init
nyan init -y
# View the installed version of nyan
nyan -v
nyan --version
Contributing
There is plenty of room for improvement (support for more commands, global installation support, .etc). Contributions are open. If you have an idea for improvement, please submit an issue with a feature proposal first for discussion. Bug fixes can be PR'd directly. Be sure to write tests for any new features and make sure all tests pass before submitting any PR.