npm-参考手册

索引

  • 权限

    • t/team 构造成员治理

    • access 包接见掌握

    • adduser/login 用户登录

    • logout 注销

    • owner 一切者治理

    • whoami 检察用户信息

  • 包仓储

    • s/se/search 仓储查找包

    • publish 宣布

    • unpublish 作废宣布

    • deprecate 弃用

    • stars 我喜好的包

    • star 喜好

    • unstar 作废喜好

  • 包当地

    • init 初始化package.json

    • i/install 装置

    • un/uninstall 删除

    • dedupe/ddp 消灭反复包

    • dist-tags 标签治理

    • version 更新包的版本信息

    • it/install-test 运转npm install && npm test

    • ln/link 装置链接

    • ls/list 列出包

    • update/up 更新并装置脱漏的包

    • outdated 检测逾期

    • pack 打包tarball文件

    • prune 清算外来包

    • shrinkwrap 锁定依靠包版本

    • cache 缓存治理

  • 剧本

    • run/run-script 运转剧本

    • start 运转start剧本

    • stop 运转stop剧本

    • tst/test 运转test剧本

    • rb/rebuild 从新编译当地包

    • restart 递次实行重启相干的一系列剧本

  • 设置

    • c/config 设置治理

    • get 列出设置

    • set 设置设置

  • 检察

    • root 包根目次

    • prefix 打印prefix设置

    • v/view 检察仓储信息

    • bin 检察bin目次

    • bugs/issue 浏览器检察bugs

    • docs/home 浏览器检察协助文档

    • repo 浏览器检察仓储

    • help 检察协助

    • help-search 协助中搜刮关键字

  • 其他

    • completion shell插补

    • doctor 环境检测

    • edit 进入包目次并启动编辑器

    • explore 进入包目次并运转敕令

    • ping 搜检仓储是不是可用

权限

npm许可经由过程scope构造私有包,经由过程team细化权限掌握.

npm官方仓储有两种范例的包,一般包和scope包

一般包特性:

  • 只能公有,谁都可以下载运用

  • 仅可以经由过程一切者(owner)举行权限掌握,假如要许可某个用户修正或宣布包,必需将该用户增加到包的一切者列表。增加到包一切者列表的用户具有一切的权限.

scope包特性:

  • 包名有两部构成,@scope/name, @后的为scope名,/后的才是详细的包名

  • 可以掌握公有和私有

  • 细化的权限掌握,比方可以建立团队,并给予团队对包只读/修正的权限

owner

npm owner add <user> [<@scope>/]<pkg> # 将用户增加到包的一切者列表
npm owner rm <user> [<@scope>/]<pkg> # 从包的一切这列表中删除用户
npm owner ls [<@scope>/]<pkg> # 列出包的一切者

成为包的一切者的用户,将可以修正元数据(如标记弃用),宣布新版本,增加其他用户到包的一切者列表

t/team

npm team create <scope:team> # 建立团队
npm team destroy <scope:team> # 删除团队

npm team add <scope:team> <user> # 增加用户到团队
npm team rm <scope:team> <user> # 从团队中移除用户 

npm team ls <scope>|<scope:team> 列出团队/成员

npm team edit <scope:team>  用编辑器编辑团队信息

access

npm access public [<package>]  # 设置包开放
npm access restricted [<package>] # 设置包私有

npm access grant <read-only|read-write> <scope:team> [<package>] # 设置团队对包可以只读/许可修正
npm access revoke <scope:team> [<package>] # 从团队中收回包权限

npm access ls-packages [<user>|<scope>|<scope:team>]  # 列出用户/域/团队可以接见的包
npm access ls-collaborators [<package> [<user>]] # 列出包的权限信息
npm access edit [<package>] # 用编辑器编辑包权限

adduser/login

npm adduser [--registry=url] [--scope=@orgname] [--always-auth]

提醒输入username, password, email,举行登录校验,返回token保留到.npmrc

logout

npm logout [--registry=<url>] [--scope=<@scope>]

要求仓储效劳将当前token失效

whoami

npm whoami [--registry <registry>]

列出用户在npmjs.org上的用户名

包仓储

s/se/search

npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...]
  • -l|–long: 展现出悉数的DESCRIPTION栏信息

  • –no-description: 不显现DESCRIPTION栏信息

publish

npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]
  • –tag: 带上tag信息宣布,以后包可以经由过程npm install <name>@<tag>装置

  • –access: 仅实用于scope包,默以为restricted

unpublish

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

从仓储中删除包,该操纵会损坏依靠,不引荐实用,假如是为了勉励用户实用新版本,可以运用deprecate敕令

deprecate

npm deprecate <pkg>[@<version>] <message>

标记包弃用,用户在装置时npm会有正告

stars

npm stars [<user>]

检察用户喜好的包

star/unstart

npm star [<pkg>...]
npm unstar [<pkg>...]

标记喜好/作废喜好标记

包当地

init

npm init [-f|--force|-y|--yes]

初始化package.json, 默许会有许多输入提醒,可以经由过程-f|--force|-y|--yes选项建立默许设置的package.json
已存在package.json后再次运转npm init不会损坏已有设置,只会变动你真正修改的部份

i/install

npm install (with no args, in package dir) # 读取package.json装置
npm install [<@scope>/]<name> # 默许装置标签为latest
npm install [<@scope>/]<name>@<tag> # 指定标签
npm install [<@scope>/]<name>@<version> # 指定版本
npm install [<@scope>/]<name>@<version range> # 指定版本局限
npm install <tarball file>  # 经由过程tarball文件装置
npm install <tarball url> # 经由过程tarball文件url链接装置
npm install <git remote url> # 经由过程git装置包, url花样为<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>]
npm install <folder> 经由过程包地点的文件夹装置
  • –registry: 从指定仓储中下载装置包

  • -S/–save: 装置并保留包信息到package.json的dependencies区

  • -D/–save-dev: 装置并保留包信息到package.json的devDependencies区

  • –tag: 优先依据标签而不是版本装置包

  • –dry-run: 报告装置状态而不真的装置

  • -f/–force: 装置时跳过缓存直接从长途下载

  • -g/–global: 装置到全局

  • –link: 链接全局装置的包的当地

  • –no-shrinkwrap: 装置时疏忽shrinkwrap

un/uninstall

npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev]
  • -S/–save: 删除包并移除包在package.json的dependencies区的信息

  • -D/–save-dev: 删除包并移除包在package.json的devDependencies区的信息

ddp/dedupe

npm dedupe

npm搜检包依靠树并消灭不要的包

dist-tags

npm dist-tag add <pkg>@<version> [<tag>] # 增加标签
npm dist-tag rm <pkg> <tag> # 移除标签
npm dist-tag ls [<pkg>] # 列出包所包括的标签

罕见标签有latest, next, lts等

可以在宣布和下载包是带上标签

npm publish # 默许标签latest
npm publish --tag next  # 宣布next标签 
npm install npm # 默许标签latest
npm install npm@next  
npm install --tag next
  • –registry: 宣布包到指定仓储

v/version

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

该敕令实行步骤

  1. 搜检git事情目次

  2. 运转preversion剧本, 可以写些触发测试的剧本

  3. 连系当前包当前版本信息和patch, minor, major等,天生新版本号,更新package.json中version字段

    • patch 1.0.0 => 1.0.1

    • prepatch 1.0.0 => 1.0.1-0

    • minor 1.0.0 => 1.1.0

    • preminor 1.0.0 => 1.1.0-0

    • major 1.0.0 => 2.0.0

    • premajor 1.0.0 => 2.0.0-0

    • prerelease 1.0.0-0 => 1.0.0-1

    • from-git 从git猎取版本信息

  4. 运转version剧本

  5. git提交并打标签

  6. 运转postversion剧本

it/install-test

npm it
npm install-test

相当于运转npm install && npm test

ln/link

npm link  # 在全局node_modules下建立当前文件夹的超链接
npm link [<@scope>/]<pkg>[@<version>] # 将全局装置的包链接到当地node_modules中

ls/list

npm ls [[<@scope>/]<pkg> ...]

打印依靠树

  • –json: 已json花样输出

  • –long: 展现更多信息

  • –parseable: 显现展平的目次而不是依靠树

  • –global: 显现全局装置的包的依靠树

  • –depth: 树层级,从0最先

  • –prod/production: 仅显现package.json里dependencies包的依靠

  • –dev: 仅显现package.json里devDependencies包的依靠

up/update

npm update [-g] [<pkg>...]

更新包到包的semver所许可的最新版本, 并装置脱漏的包

  • –save: 更新并保留更新到package.json

  • –dev: 同时更新devDependencies中的包

  • –depth: 默许情况下仅更新顶层(–depth=0)为0的包,假如想更新一切包,可以指定–depth=9999

outdated

npm outdated [[<@scope>/]<pkg> ...]

.e.g

Package        Current  Wanted  Latest  Location
ajv              4.8.2  4.11.8   5.0.1  example
async            2.1.2   2.4.0   2.4.0  example
body-parser     1.15.2  1.17.1  1.17.1  example

列表栏

  • Current: 当前版本

  • Wanted: smever许可的最高版本

  • Latest: 仓储中最新版本

  • Location: 依靠树中的位置

敕令选项

  • –json: 已json花样输出

  • –long: 展现更多信息

  • –parseable: 平铺展现

  • –global: 显现全局装置的包的依靠树

  • –depth: 树层级,默许0

pack

npm pack [[<@scope>/]<pkg>...]

从包天生名为<name>-<version>.tgz的tarball,并缓存

prune

npm prune [[<@scope>/]<pkg>...] [--production]

清算不在package.json天生的依靠树中的包

  • –production: 移除devDependencies中的包

shrinkwrap

npm shrinkwrap

shrinkwrap用来锁定依靠包的版本

包A的package.json

{
    "name": "A",
    "version": "0.1.0",
    "dependencies": {
        "B": "<0.1.0"
    }
}

包A的依靠树

 A@0.1.0
    `-- B@0.0.1
        `-- C@0.0.1

当B有新版本0.0.2宣布, B@0.0.2满足<0.1.0, 所以npm install A装置胜利后依靠树

 A@0.1.0
    `-- B@0.0.2
        `-- C@0.0.1

我们愿望包A依靠的B版本保持在B@0.0.1, 可以运转

npm shrinkwrap

该敕令会天生npm-shrinkwrap.json, 其内容以下


{
  "name": "A",
  "version": "0.1.0",
  "dependencies": {
    "B": {
      "version": "0.0.1",
      "from": "B@^0.0.1",
      "resolved": "https://registry.npmjs.org/B/-/B-0.0.1.tgz",
      "dependencies": {
        "C": {
          "version": "0.0.1",
          "from": "org/C#v0.0.1",
          "resolved": "git://github.com/org/C.git#5c380ae319fc4efe9e7f2d9c78b0faa588fd99b4"
        }
      }
    }
  }
}

运转npm install时假如存在npm-shrinkwrap.json, npm在装置包时会依据shrinkwrap.json锁定依靠包的版本

cache

npm cache add <tarball file> # 增加到缓存
npm cache add <folder>
npm cache add <tarball url>
npm cache add <name>@<version> 

npm cache ls [<path>]  # 缓存明细

npm cache clean [<path>] # 消灭缓存

缓存途径可以经由过程npm config get cache猎取

剧本

package.json的scripts区可以用来定义自定义剧本

run/run-script

npm run <command> [-- <args>...]

运转package.json的scripts中定义的敕令

npm run会自动将node_modules/.bin增加到环境变量PATH中。假如当地装置过mocha, 可以如许编写"scripts": {"test": "mocha test/\*.js"}而不需要"scripts": {"test": "node_modules/.bin/tap test/\*.js"}

start

npm start [-- <args>]

同等与npm run start [-- <args>]

stop

npm stop [-- <args>]

同等与npm run stop [-- <args>]

tst/test

npm test [-- <args>]

同等与npm run test [-- <args>]

rb/rebuild

npm rebuild [[<@scope>/<name>]...]

运转指定包中的build剧本,实用于更新node版本后,从新编译C++包

restart

npm restart [-- <args>]

循序实行1. prerestart 2. prestop 3. stop 4. poststop 5. restart 6. prestart 7. start 8. poststart 9. postrestart

设置

c/config

npm config set <key> <value> [-g|--global] # 增加或更新
npm config get <key> # 猎取
npm config delete <key> # 删除
npm config list #  设置明细
npm config edit # 编辑器编辑
  • –global: 全局设置

get

npm get <key> # 同npm config get

set

npm set <key> <value> [-g|--global] #同npm config set 

检察

root

npm root # 打印当地node_modules目次
npm root -g # 打印全局node_modules目次

prefix

npm prefix # 打印包括package.json近来父目次
npm prefix -g # 打印全局设置prefix的值

view

npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]

检察仓储信息

npm view compact


#  打印
{ name: 'compact',
  description: 'A JavaScript compacting middleware for express',
  'dist-tags': { latest: '0.1.2' },
  maintainers: [ 'serby <paul@serby.net>' ],
  time: 
   { modified: '2017-03-28T12:49:48.000Z',
     created: '2012-02-06T01:39:50.261Z',
     '0.1.2': '2012-09-04T11:19:17.618Z',
     '0.1.1': '2012-08-29T08:18:12.345Z',
     '0.1.0': '2012-07-09T14:40:56.751Z',
     '0.0.7': '2012-07-04T17:14:01.593Z',
     '0.0.6': '2012-06-29T14:29:04.847Z',
     '0.0.5': '2012-05-23T10:10:15.010Z',
     '0.0.4': '2012-03-31T09:05:40.450Z',
     '0.0.3': '2012-03-23T15:25:18.289Z',
     '0.0.2': '2012-03-21T18:15:24.718Z',
     '0.0.1': '2012-02-06T01:39:50.261Z' },
  users: { serby: true },
  author: 'Paul Serby <paul@serby.net>',
  repository: { type: 'git', url: 'git://github.com/serby/compact.git' },
  versions: 
   [ '0.0.1',
     '0.0.2',
     '0.0.3',
     '0.0.4',
     '0.0.5',
     '0.0.6',
     '0.0.7',
     '0.1.0',
     '0.1.1',
     '0.1.2' ],
  version: '0.1.2',
  main: './lib/compact.js',
  scripts: { test: 'mocha -r should -R spec' },
  engines: { node: '>=0.8' },
  dependencies: 
   { lodash: '~0.3',
     async: '~0.1',
     'uglify-js': '~1.3',
     mkdirp: '~0.3' },
  devDependencies: { mocha: '*', should: '~1.1', async: '~0.1', asyncjs: '~0.0' },
  optionalDependencies: {},
  dist: 
   { shasum: '66361e17108185bf261d42aff6a91b925e473139',
     size: 7603,
     noattachment: false,
     tarball: 'http://registry.npm.taobao.org/compact/download/compact-0.1.2.tgz' },
  directories: {},
  publish_time: 1346757557618 }
npm view compact@0.1.2 dependencies

# 打印
{ lodash: '~0.3',
  async: '~0.1',
  'uglify-js': '~1.3',
  mkdirp: '~0.3' }

bin

npm bin # 打印包括npm bin目次, 一般为node_modules/.bin/
npm prefix -g # 打印全局npm bin目次

bugs/issue

npm bugs [<packagename>]

翻开包bug追踪url

npm bugs npm # 浏览器翻开https://github.com/npm/npm/issues

docs/home

npm docs [<pkgname> [<pkgname> ...]]
npm docs .
npm home [<pkgname> [<pkgname> ...]]
npm home .

翻开文档url

npm docs npm #浏览器翻开https://docs.npmjs.com/

repo

npm repo [<pkg>]

翻开git url

npm repo npm #浏览器翻开https://github.com/npm/npm

help

npm help <term> [<terms..>]

打印特定术语或敕令的协助

help-search

npm help-search <text>

从npm官方markdown文档中搜刮词条

其他

completion

npm completion >> ~/.bashrc

npm敕令插补剧本

doctor

npm doctor

环境检测

  • npm能挪用node和git敕令

  • registry可以接见

  • 当地和全局node_modules可写

  • 缓存存在且tarball文件健全

edit

npm edit <pkg>[@<version>]

进入包目次并启动编辑器

explore

npm explore <pkg> [-- <cmd>]

进入包目次并运转敕令

npm explore connect -- ls

# 打印
HISTORY.md  index.js  LICENSE  node_modules  package.json  README.md

ping

npm ping [--registry <registry>]
npm ping --registry https://registry.npmjs.org

搜检仓储是不是可用

更多文章的目次在这里

    原文作者:sigoden
    原文地址: https://segmentfault.com/a/1190000009315989
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞