[误人子弟]npm归纳常用命令

npm

快速入门

初始化描述文件

npm init [-y | -f]
# 设置默认配置
npm set init.author.name lilith
npm set init.author.email [email protected]
npm set init.license MIT

基本操作

# 增 install/i
npm install  [--save/-S | --save-dev/-D | -g/-G] [--force/-f]
# 删 uninstall/remove, rm, r, un, unlink
npm uninstall  [--save/-S | --save-dev/-D | -g/-G]
# 更新 undate/up, upgrade
npm undate  [--save/-S | --save-dev/-D | -g/-G]
# 查 list/ls/ll
npm list [--depth 0] [--save/-S | --save-dev/-D | -g/-G]

设置私有域包

私有域包以'@'符号开头

# 初始化时指定域名
npm init --scope=scopename
# 设置全局域名
npm config set scope scopename
# 要发布公共范围模块,需在发布模块时设置访问选项,此选项将保留为所有后续发布
npm publish --access=public

添加标签

添加的标签会在下次 publish 时一同发布,因为 dist 标签与 semver 共享相同的名称空间,应避免使用以数字或字母"v"开头的标签。

不可在社区不存在的版本上添加标签,如 v1.1.0 未发布到社区,则无法执行npm dist-tag add @<1.0.0> beta

# npm install 默认以最新的标签安装
npm install @
# 增
npm dist-tag add @ []
# 删
npm dist-tag rm  
# 查
npm dist-tag [ls []]

设置 token 令牌

# 增
# 新增的token仅会出现一次,可及时保存在npmrc配置文件中
npm token create [--read-only] [--cidr=ids]
npm token create [--read-only] [--cidr=1.1.1.1/24,2.2.2.2/16]
# 删
npm token revoke 
# 查
npm token list [--json | --parseable/--par]

cmd

npm adduser

  • 创建或验证指定注册表中指定的用户,并将凭据保存到文件中
  • npm login是该命令别名,作用完全相同
  • 若指定 registry 和 scope,则账户与其关联

npm audit

扫描项目是否有漏洞

# 扫描
npm audit [--json | --parseable/--par]
# 扫描并修改
npm audit fix [--force/-f | --package-lock-only | --dry-run | --production | --only=dev]

npm bugs/issues

打开包的 bug 列表 bugs.url

npm bugs []

npm home

打开包的主页 homepage

npm home []

npm repo

打开包的源码仓库 repository.url

npm repo []

npm ci

类似npm install,常用于自动化环境,明显快于常规 npm 安装速度,项目中必须存在 package-lock.json 或 shrinkwrap.json

npm config/c

管理 npm 配置文件

npm config set   [--global/-g]
npm config get 
npm config delete 
npm config list [--long/-l] [--json]
npm config edit
npm get 
npm set   [--global/-g]

npm link

将 npm 模块链接到对应的运行项目中去
进入npm-link-module模块,执行npm link,此时npm-link-module被链接到本地,进入需要使用的项目,执行npm link npm-link-module,即可像正常依赖一样使用该依赖

npm logout

退出登录

npm logout [--registry=] [--scope=<@scope>]
# 如创建额外token,退出登录后在配置文件添加token,仍可正常运行

npm org

管理组织

npm org set   [developer | admin | owner]
npm org rm  
npm org ls  []

npm outdated

查看是否有已过期的包

npm outdated [[<@scope>/]]

npm owner/author

管理包已发布包的所有权

npm owner add  [<@scope>/]
npm owner rm  [<@scope>/]
npm owner ls [<@scope>/]

npm prefix

等同于 pwd,可查看全局目录前缀-g

npm prefix [--global/-g]

npm profile

从命令行更改个人配置

npm profile get [] [--json | --parseable/--par]
npm profile set   [--json | --parseable/--par]
npm profile set password
npm profile enable-2fa [auth-and-writes|auth-only] # 启用双重身份验证
npm profile disable-2fa # 禁用双重身份验证

npm prune

移除无关的包

npm prune [[<@scope>/]...] [--production] [--dry-run] [--json]

npm publish

发包

npm publish [|] [--tag ] [--access ] [--otp otpcode] [--dry-run]

npm unpublish

在注册表中移除包

npm unpublish [<@scope>/][@]

npm restart

重新启动,将运行停止,重新启动,启动等脚本。执行顺序如下:

  1. prerestart
  2. prestop
  3. stop
  4. poststop
  5. restart
  6. prestart
  7. start
  8. poststart
  9. postrestart
npm restart [-- ]

npm root

将有效的 node_modules 文件夹打印出来,可查看全局目录前缀-g
类似于 npm prefix + node_modules

npm root [--global/-g]

npm run-script/run

执行 scripts 中的命令

# -- 的空格必须添加,如未添加会识别为配置
npm run-script  [--silent] [-- ...]

# 添加空格,为参数,通过process.argv获取 ['grep=pattern', 'name=value']
npm run test -- grep="pattern" name="value" #

# 不加空格,为配置,只可通过process.env.npm_config_获取
npm run test --grep="pattern" --name="value"
# process.env.npm_config_grep => pattern
# process.env.npm_config_name => value

该命令具有两个钩子,在脚本执行前执行 pre-,脚本执行后执行 post-。如:pretest,test,posttest

npm search/s/se/find

查找包

npm search [--long/-l] [--json] [--parseable/--par] [--no-description] [search terms ...]

npm shrinkwrap

锁定依赖包的版本,基于 node_modules 生成 shrinkwrap.json,优先级高于 package-lock.json。相比于 package-lock.json 向 npm4 版本及以下兼容

npm start

执行 scripts 中的 start 命令,默认执行node server.js

npm stop

执行 scripts 中的 stop 命令

npm team

管理组织团队和团队成员

npm team create 
npm team destroy 
npm team add  
npm team rm  
npm team ls |
npm team edit 

npm test/t

执行 scripts 中的 test 命令

npm version

迭代包版本,且生成 git 标签

npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=] | from-git]

npm view/info/show/v

npm view [<@scope>/][@] [[.]...]

npm whoami

显示 npm 用户名

npm whoami [--registry ]

npx

调用项目安装的模块

运行的时候,会到 node_modules/.bin 路径和环境变量$PATH 里面,检查命令是否存在
npx mocha --version等价于node-modules/.bin/mocha --version

避免全局安装模块

create-react-app 这个模块是全局安装,npx 可以运行它,而且不进行全局安装
npx create-react-app my-react-app,npx 将 create-react-app 下载到一个临时目录,使用以后再删除
只要 npx 后面的模块无法在本地发现,就会下载同名模块
--no-install 参数强制使用本地模块
--ignore-existing 参数忽略本地的同名模块

使用不同版本的 node

npx [email protected] -v

发包流程

官方文档

创建账号

npm adduser

登录

npm login
# input your Username, Password, Email
# 测试当前账号
npm whoami

发包

npm publish

更新

# 修改主版本号
npm version major
# 修改次版本号
npm version minor
# 修改修订号
npm version patch
# 修改版本号后再次执行发布命令
npm version  && npm publish

你可能感兴趣的:([误人子弟]npm归纳常用命令)