pnpm All In One
pnpm All In One
Version: 7.x
bash shell
# Linux / macOS
$ curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm
# Node.js is not preinstalled
$ curl -fsSL https://get.pnpm.io/install.sh | sh -
install
# Homebrew
$ brew install pnpm
# npm
$ npm install -g pnpm
# npx
$ npx pnpm add -g pnpm
#/Users/xgqfrms-mbp/.nvm/versions/node/v12.18.0/pnpm-global/5:
$ pnpm -v
# 6.32.3
$ pnpm -h
Version 6.32.3
Usage: pnpm [command] [flags]
pnpm [ -h | --help | -v | --version ]
Manage your dependencies:
add Installs a package and any packages that it depends
on. By default, any new package is installed as a
prod dependency
import Generates a pnpm-lock.yaml from an npm
package-lock.json (or npm-shrinkwrap.json) file
i, install Install all dependencies for a project
it, install-test Runs a pnpm install followed immediately by a pnpm
test
ln, link Connect the local project to another one
prune Removes extraneous packages
rb, rebuild Rebuild a package
rm, remove Removes packages from node_modules and from the
project's package.json
unlink Unlinks a package. Like yarn unlink but pnpm
re-installs the dependency after removing the
external link
up, update Updates packages to their latest version based on the
specified range
Review your dependencies:
audit Checks for known security issues with the installed
packages
ls, list Print all the versions of packages that are
installed, as well as their dependencies, in a
tree-structure
outdated Check for outdated packages
Run your scripts:
exec Executes a shell command in scope of a project
run Runs a defined package script
start Runs an arbitrary command specified in the package's
"start" property of its "scripts" object
t, test Runs a package's "test" script, if one was provided
Other:
pack
publish Publishes a package to the registry
root
Manage your store:
store add Adds new packages to the pnpm store directly. Does not
modify any projects or files outside the store
store prune Removes unreferenced (extraneous, orphan) packages from
the store
store status Checks for modified packages in the store
https://pnpm.io/installation#compatibility
CI/CD
.gitlab-ci.yml
stages:
- build
build:
stage: build
image: node:14.16.0-buster
before_script:
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@6
- pnpm config set store-dir .pnpm-store
script:
- pnpm install # install dependencies
cache:
key: "$CI_COMMIT_REF_SLUG"
paths:
- .pnpm-store
.github/workflows/NAME.yml
name: pnpm Example Workflow
on:
push:
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [15]
steps:
- uses: actions/checkout@v2
- uses: pnpm/action-setup@v2.0.1
with:
version: 6.20.3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
.travis.yml
cache:
npm: false
directories:
- "~/.pnpm-store"
before_install:
- curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@6
- pnpm config set store-dir ~/.pnpm-store
install:
- pnpm install
https://pnpm.io/continuous-integration
demo
$ pnpm create vite
$ yarn create vite
$ npm create vite@latest
https://vitejs.dev/guide/#scaffolding-your-first-vite-project
monorepo
https://en.wikipedia.org/wiki/Monorepo
https://www.toptal.com/front-end/guide-to-monorepos
-
yarn workspaces
-
lerna
https://github.com/lerna/lerna
git
git submodule
https://www.atlassian.com/git/tutorials/monorepos
https://git-scm.com/docs/git-submodule
https://git-scm.com/book/en/v2/Git-Tools-Submodules
refs
©xgqfrms 2012-2020
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/15654797.html
未经授权禁止转载,违者必究!