npm常用命令系统介绍

这篇具有很好参考价值的文章主要介绍了npm常用命令系统介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前介绍过一些常用的 npm 命令,如果是初始的使用上文已经够用

这里是第二次整理常用的 npm 的命令,一个是对 npm 的理解更加深入,同时也是一些不常用命令的学习,更加是一些内容的融会贯通

npm help

可以通过该命令查看所有 npm 支持的命令,并且当你的 node 版本升级的时候,也可以通过该命令最直接了解到命令的变化,终端输出内容:

npm <command>

Usage:

npm install        install all the dependencies in your project
npm install <foo>  add the <foo> dependency to your project
npm test           run this project command tests
npm run <foo>      run the script named <foo>
npm <command> -h   quick help on <command>
npm -l             display usage info for all commands
npm help <term>    search for help on <term> (in a browser)
npm help npm       more involved overview (in a browser)

#所有支持的命令
All commands:

    access, adduser, audit, bugs, cache, ci, completion,
    config, dedupe, deprecate, diff, dist-tag, docs, doctor,
    edit, exec, explain, explore, find-dupes, fund, get, help,
    hook, init, install, install-ci-test, install-test, link,
    ll, login, logout, ls, org, outdated, owner, pack, ping,
    pkg, prefix, profile, prune, publish, query, rebuild, repo,
    restart, root, run-script, search, set, shrinkwrap, star,
    stars, start, stop, team, test, token, uninstall, unpublish,
    unstar, update, version, view, whoami

Specify configs in the ini-formatted file:
    C:\Users\<username>\.npmrc
or on the command line via: npm <command> --key=value

More configuration info: npm help config
Configuration fields: npm help 7 config

npm@9.5.0 D:\<npm address>

以上命令也输出了每个命令的简要介绍

npm init

package.json 文件

命令用于生成 package.json,而对于现在前端开发,我们常使用 package.json 管理引入的各种包,因此需要初始化该文件

输入该命令后会提示输入相关信息,最终生成 package.json 文件

package name: (test) package
version: (1.0.0)
description: test init command
entry point: (index.js)
test command: test
git repository: https://xxxx.www.com
keywords: test init
author:
license: (ISC)

package.json 文件

{
  "name": "package",
  "version": "1.0.0",
  "description": "test init command",
  "main": "index.js",
  "scripts": {
    "test": "test"
  },
  "repository": {
    "type": "git",
    "url": "https://xxxx.www.com"
  },
  "keywords": ["test", "init"],
  "author": "",
  "license": "ISC"
}

package.json 文件属性说明

关键字 描述 默认值
默认关键字
name 项目名称
version 版本号 1.0.0
description 描述信息 默认 ‘’
main 入口文件 index.js
scripts 可执行命令 npm run []
keywords 关键字 []
author 作者
license 遵循的协议 ISC
bin 可执行命令
其它
bugs 当前目录 bug 信息 {url,email}
os 支持操作系统 ‘os’: [‘linux’]
engines 项目使用的引擎 {‘node’: ‘>=0.10.3 <15’}
homepage 当前目录首页地址
dependencies 线上环境需要的包
devDependencies 仅开发/测试时需要的包
private 为 true,拒绝发布
  • bugs
    • url bug 的追踪地址
    • email bug 的反馈 email
  • os
    • “os”: [“darwin”,“linux”]支持的操作系统
    • “os”: ["!linux"]不支持的操作系统

默认 package.json 文件–参数[-yes|-y]

npm init -yes
#或者
npm init -y

与无[-yes|-y] 参数不同,当选则-yes 或者-y 参数时,不需要根据提示输入信息,会直接创建默认的 package.json

设置 package.json 中字段的默认值

#设置
npm set init-author-name '<username>'
#获取
npm get  init-author-name
#删除
npm config delete init-author-name

npm set init.author.name方法已经弃用,现在是用init-author-name替代

通过设置了 author 字段后,npm init 的提示语句中不会再让你输入 author,而会默认使用上述值

其实上述命令是 npm config 命令的简写,详见npm config

package-lock.json 文件

用于锁定 package.json 中下载的包的真实版本,及这些包所依赖的包

之所以 package.json 与 package-lock.json 中包版本不同是因为执行 npm install 时 若没有 package-lock.json 文件,package.json 文件中包名前的^,~等符号决定了初始化具体包的规则,例如初始化当前时间点该包的补丁版本的最新版本,而在不同时间初始化,例如 3 个月前和当前时间的最新版本可能已经发生变化所以就会导致真实初始化后同一个包在 package-lock.json 中可能版本不同

npm [config|c]

命令中 config 可以简写为c,通过运行 npm help config 可以在联网的浏览器中打开npm config命令的详细介绍

#<key>=<value> 可以写成 <key> <value>,两种方式均可,配置属性值
npm config set <key>=<value> [<key>=<value> ...]
#获取配置的属性值
npm config get [<key> [<key> ...]]
#删除配置的属性值
npm config delete <key> [<key> ...]
#列出所有配置的相关信息--全局安装位置 用户配置信息与文件路径等
npm config list [--json]
#打开配置文件,并可查看全文与修改
npm config edit
npm config fix

我们一致可设置属性有init-author-name,其它可设置的属性包括哪些?
发现通过执行npm c edit将会打开 npm 的配置文件,文件中列出了所有的可配置选项

打开的文件是.npmrc,该文件是通过;表示注释,我们可以通过该文件查看到曾经配置的属性,也可以查看所有可以配置的选项

;;;;
;.npmrc配置文件的位置
; npm userconfig file: C:\Users\<username>\.npmrc
; this is a simple ini-formatted file
; lines that start with semi-colons are comments
; run `npm help 7 config` for documentation of the various options
;
; Configs like `@scope:registry` map a scope to a given registry url.
;
; Configs like `//<hostname>/:_authToken` are auth that is restricted
; to the registry host specified.

;你曾经配置过的属性
cache=D:\PG\nodejs\node_cache
home=https://npm.taobao.org
init-author-email=<username>@qq.com
init-author-name=<username>
prefix=D:\PG\nodejs\node_global
registry=https://registry.npm.taobao.org/
strict-ssl=false

;;;;
; all available options shown below with default values
;;;;

;以下都是可以配置的属性
; _auth=null
; access=null
; all=false
; allow-same-version=false
; also=null
; audit=true
; audit-level=null
; auth-type=web
; before=null
; bin-links=true
; browser=null
; ca=null
; cache=C:\Users\<username>\AppData\Local/npm-cache
; cache-max=null
; cache-min=0
; cafile=null
; call=
; cert=null
; ci-name=null
; cidr=null
; color=true
; commit-hooks=true
; depth=null
; description=true
; dev=false
;
; diff-ignore-all-space=false
; diff-name-only=false
; diff-no-prefix=false
; diff-dst-prefix=b/
; diff-src-prefix=a/
; diff-text=false
; diff-unified=3
; dry-run=false
; editor=C:\Windows\notepad.exe
; engine-strict=false
; fetch-retries=2
; fetch-retry-factor=10
; fetch-retry-maxtimeout=60000
; fetch-retry-mintimeout=10000
; fetch-timeout=300000
; force=false
; foreground-scripts=false
; format-package-lock=true
; fund=true
; git=git
; git-tag-version=true
; global=false
; globalconfig=
; global-style=false
; heading=npm
; https-proxy=null
; if-present=false
; ignore-scripts=false
;
; include-staged=false
; include-workspace-root=false
; init-author-email=//作者邮箱
; init-author-name=//作者姓名
; init-author-url=
; init-license=ISC//package.json遵循证书规范
; init-module=~/.npm-init.js
; init-version=1.0.0//package.json初始化版本号
; init.author.email=//该方式弃用
; init.author.name=//该方式弃用
; init.author.url=//该方式弃用
; init.license=ISC//该方式弃用
; init.module=~/.npm-init.js//该方式弃用
; init.version=1.0.0//该方式弃用
; install-links=false
; install-strategy=hoisted
; json=false
; key=null
; legacy-bundling=false
; legacy-peer-deps=false
; link=false
; local-address=null
; location=user
; lockfile-version=null
; loglevel=notice
; logs-dir=null
; logs-max=10
; long=false
; maxsockets=15
; message=%s
; node-options=null
; noproxy=
; offline=false
;
; omit-lockfile-registry-resolved=false
; only=null
; optional=null
; otp=null
;
; package-lock=true
; package-lock-only=false
; pack-destination=.
; parseable=false
; prefer-offline=false
; prefer-online=false
; prefix=//全局安装地址
; preid=
; production=null
; progress=true
; provenance=false
; proxy=null
; read-only=false
; rebuild-bundle=true
; registry=https://registry.npmjs.org/
; replace-registry-host=npmjs
; save=true
; save-bundle=false
; save-dev=false
; save-exact=false
; save-optional=false
; save-peer=false
; save-prefix=^
; save-prod=false
; scope=
; script-shell=null
; searchexclude=
; searchlimit=20
; searchopts=
; searchstaleness=900
; shell=C:\Windows\system32\cmd.exe
; shrinkwrap=true
; sign-git-commit=false
; sign-git-tag=false
; strict-peer-deps=false
; strict-ssl=true
; tag=latest
; tag-version-prefix=v
; timing=false
; tmp=C:\Users\<username>\AppData\Local\Temp
; umask=0
; unicode=true
; update-notifier=true
; usage=false
; user-agent=npm/{npm-version} node/{node-version} {platform} {arch} workspaces/{workspaces} {ci}
; userconfig=~/.npmrc
; version=false
; versions=false
; viewer=browser
; which=null
;
; workspaces=null
; workspaces-update=true
; yes=null

设置源

npm config set registry <url>

同时登陆与设置源:

npm login --registry=http://192.168.1.1:8080/repository/npm-all/

回车后输入刚才新建用户的用户和密码和邮箱

npm [install|i]

npm i 是安装包的命令,i 是 install 的简写

  • npm install:安装当前命令所在路径中 package.json 中所有的包
  • npm install URL:本地指定路径包安装
  • npm install [packagename]@[version] :指定版本安装

可选参数:

  • 参数–save
    • npm i [packagename]等价于 npm i [packagename] --save
    • 若执行命令路径中没有 node_module 与 package.json,会自动生成
    • 没有参数默认是安装在当前项目的 node_module 中
    • 添加该包到 package.json 文件 的 dependencies 属性中
  • 参数-D
    • 若执行命令路径中没有 node_module 与 package.json,会自动生成
    • 安装到当前项目的 node_module 中
    • 添加该包到 package.json 中的 devDependencies 属性
  • 参数-g
    • 表示包是全局安装
    • 如果不知道全局安装的位置,可以 通过npm get prefix获取
  • 参数–production
    • 只初始化线上需要的包,即 dependencies 中的包,devDependencies 中的忽略

全局安装的特性

一般项目或软件的包是安装在命令的执行路径中的 node_modules 文件夹中,是需要被当前项目所使用的,一般 node_modules 提供 npm 与 node 之间的连接,例如:没有安装包的时候运行项目无法识别对应包中的方法

而工具包需要全局安装,全局安装的包,可以在任何位置执行它的命令;一般全局安装的时候会将全局安装包的命令添加到系统命令中去,并列出这些命令;

全局安装工具包主要是为了系统能识别该工具包的命令,并且执行该命令,例如 create-react-app 工具包,是个脚手架,是为了创建项目,但是项目创建完成后并不会用到该工具包!!!被项目使用的包必须安装到项目中,否则,一旦其他人使用该项目,却没有全局安装该包就会导致报错

包的删除

npm uninstall(un/rm)

卸载安装的包

npm uninstall [packagename]

如果事后发现之前安装的包用不到了最好卸载,也是排除其他人初始化的时候,安装不必要的包

npm rm -rf node_modules/

删除所有安装的包

npm prune

删除无用的软件包
npm 会拿你的 package.json 和 node_modules 目录进行比对,然后把那些在 package.json 中没有而 node_modules 存在的引用列出

还有那些你没有手动添加到 package.json 或者是执行 npm install [package] 然后在 package.json 中删除的包,都会被删掉。

npm prune [--production] :如果设置参数–production,并且环境变量是 production,则 devDependence 会全部被删除

查看包的信息

npm view <packagename>

查看 packagename 的最新信息,你可以用于确定你项目中的包是否是最新版本(查看远端 NPM 服务器上最新的版本信息),是否需要更新并可查看当前包的依赖包等

npm info <packagename>

查看相关信息,展示内容同npm view

npm show <packagename>

查看相关信息,展示内容同npm view

npm show <packagename> versions

可以直接查看包当前最新版本信息

npm outdated

列出将要过期的列表,以及可更新内容:

npm outdated [--depth=null|number]

  • depth 递归层次,表明查看过期包的层次

npm list

列出所有的依赖项以及依赖项的依赖项,包括子依赖项等

npm list --depth=0 查看可更新列表

npm update

  • npm list --depth=0 查看可更新列表
  • npm update
    • 更新命令所在执行目录下 package.json 文件中的可更新文件
    • npm update 更新具体包

如果 package.json 的包使用的是确切表示法,该命令不会更新包,只有^ 或 ~等非确切符号修饰的包会更新

实战

执行更新命令

npm update 更新 node_modules 中的包

问题描述

更新命令执行后 package-lock.json 版本更新
package.json 版本并没有同步更新

解决方案
  1. 全局安装 npm-check-updates
  2. 执行命令更新 package.json 文件-- ncu -u

如果使用 npm update,该命令不能够先执行,否则会导致无法执行 npm update,因为文件中的版本会变成最新的

如果先执行了 ncu -u,导致文件中的版本会变成最新的,此时如果删除 package-lock.json 文件或直接执行npm install,可以更新 node_modules 中的包

npm常用命令系统介绍,前端模块开发,npm

但是该命令也有些问题,因为可能出现不兼容!!

npm repo <packagename>

跳转到 git 相关地址

npm run [command]

在 package.json 中 script 中的命令,可以执行命令:

npm run [command]//==npm [command]

npx:npm execute

npx eslint --init

eslint --init

初始化配置文件,以上均可 node 版本 v14.13.0

npm help scripts 查看特殊命令

pre[command]//在 command 命令之前执行的命令
[command]//执行command 命令
post[command]//在 command 命令之后执行的命令

可以围绕 command 提供 pre[command] 与 post[command] 相关钩子

npm link

对于希望能够被全局识别的项目命令,可以使用该命令,该命令用于创建与该项目相关的可以被全局识别符号链接

版本语义

[major].[minor].[patch]主要是用于表示依赖项的表示法,并在前面加上特殊字符,例如^/ ~

  • major 是主版本号,如果项目出现不兼容性等大的变更会变更 major
  • minor 是次版本号,如果项目出现功能性变更一般会增加 minor
  • patch 是修补版本号,如果是修复一些 bug 等小的变更升级 patch

符号

  • 无符号
    • 示例:“ora”: “4.0.5”
    • 安装确切的版本号 4.0.5
  • ^
    • 示例:“ora”: “^4.0.5”
    • 安装主版本号 4.x.y 的最新版本
  • ~
    • 示例:“ora”: “~4.0.5”
    • ~ install 安装次级版本 4.0.x 最新版本,也即任意修补版本
  • >|>=|<|<=
    • 示例:“ora”: “>4.0.5”
    • 大于 4.0.5 的版本号
  • -
    • 示例:“ora”: “4.0.5-4.1.5”
    • 等价于 version1< 版本号 < version2 ,版本号介于两者之间
  • ||
    • 示例:“ora”: “4.0.5||4.1.5”
    • 选择版本号 4.0.5 或者 4.1.5
  • *
    • 示例:“ora”: “*”
    • 匹配任意版本号
  • ""
    • 示例:“ora”: “”
    • 等价于*,匹配任意版本号
  • *
    • 示例:“ora”: “*”
    • 匹配任意版本号
  • git或者user/repo
    • 示例:“ora”: “https://abc.com/bvv.gz”
    • 匹配 Dependencies 地址
  • tag
    • 示例:“ora”: “latest”
    • 匹配标签对应的版本号,标签是 latest,alpha,beta
  • path
    • 示例:“ora”: “file:…/”
    • 匹配对应本地地址的包

如果没有 package-lock.json 文件,初始化的时间不同,安装时间包如果有新的版本,根据以上符号,可能安装不同版本的包,而 lock 文件则是为了锁定安装包的版本,确保即使包出现修补版本的更新,也按照 lock 中的版本进行安装

该特殊字符的功能可以通过网站体现出来文章来源地址https://www.toymoban.com/news/detail-733514.html

npm i <packagename>@latest 安装最新的版本

到了这里,关于npm常用命令系统介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • npm pack 命令生成离线npm模块/npm依赖包

    环境 node v16.10.0 npm v8.3.0 在使用 npm 管理第三方模块时,这些模块通常会被安装在 node_modules 目录下。当我们需要把模块给其他小伙伴或者搭建 npm 私服时,需要将 node_modules 的所有模块生成N个 packname-version.tgz 文件,方便其他小伙伴使用 npm install packname-version.tgz 命令安装或者使

    2024年02月03日
    浏览(42)
  • npm常用命令

    npm(Node Package Manager)是Node.js的包管理器,用于安装、管理和分享Node.js包。以下是npm的详细概念介绍: 包(Packages) :在npm中,包是指包含JavaScript代码、依赖项、配置文件等的代码库。这些代码库可以通过npm进行分发和共享。 依赖管理 :npm可以帮助您管理项目的依赖关系

    2024年01月16日
    浏览(42)
  • NPM 常用命令(五)

    目录 1、npm doctor 1.1 命令 1.2 描述 npm ping npm -v node -v npm config get registry which git 1.3 权限检查 1.4 验证缓存包的校验和 2、npm edit 2.1 命令 2.2 描述 2.3 配置 editor 3、npm exec 3.1 命令 3.2 描述 npx 与 npm exec 3.3 配置 package call workspace workspaces include-workspace-root 3.4 示例 npm doctor  运行一组

    2024年02月09日
    浏览(49)
  • npm常用命令详解

    npm (Node Package Manager)是 Node.js 的包管理器,用于管理项目中的依赖(libraries, frameworks, tools)。以下是一些 npm 的常用命令及其详解: 作用:初始化一个新的 Node.js 项目,创建一个 package.json 文件。 用法: 作用:安装依赖包。 用法: 作用:更新项目依赖。 用法: 作用:卸

    2024年03月21日
    浏览(69)
  • NPM 常用命令(二)

    目录 1、npm bugs 1.1 配置 browser registry 2、npm cache 2.1 概要 2.2 详情 2.3 关于缓存设计的说明 2.4 配置 cache 3、 npm ci 3.1 描述 3.2 配置 install-strategy legacy-bundling global-style omit strict-peer-deps foreground-scripts ignore-scripts audit bin-links fund dry-run workspace workspaces include-workspace-root install-links 运行

    2024年02月10日
    浏览(52)
  • NPM 常用命令(一)

    目录 1、npm 1.1 简介 1.2 依赖性 1.3 安装方式 2、npm access 2.1 命令描述 2.2 详情 3、npm adduser 3.1 描述 4、npm audit 4.1 简介 4.2 审计签名 4.3 操作示例 4.4 配置 audit-level dry-run force json package-lock-only omit foreground-scripts ignore-scripts workspace workspaces include-workspace-root install-links 在命令行,输

    2024年02月09日
    浏览(41)
  • NPM常用命令及详解

    pm 是一个用于管理 Node.js 应用程序依赖的工具,类似于其他编程语言的包管理器,如Python的PiP、Ruby的RubyGems、Debian的apt-get、Fedora的rpm/yum、Perl的CPAN和PHP的PEAR。npm 提供了简单的命令行界面,用于在互联网上发布和分发 Node.js 包,并且也被广泛用于分发前端库。 npm 的常用命令

    2024年04月10日
    浏览(35)
  • NPM常用命令整理

    1.查看npm版本号     npm -v 2.npm init 初始化命令 3.如果文件夹名字是小写的字母可以使用npm init -y来进行初始化 4.npm i (npm install) 包名  安装依赖包 5.npm i -g nodemon  自动重启命令 6.npm r (npm remove) 包名 删除指定包 7.npm run server  项目启动命令   npm start 8.安装cnpm包管理器     n

    2024年02月13日
    浏览(46)
  • 如何正确使用npm常用命令

    npm常用命令: 官方文档: CLI Commands | npm Docs 1. npm -v:查看 npm 版本 2. npm init:初始化后会出现一个 Package.json 配置文件,可以在后面加上 -y,快速跳到问答界面 3. npm install:会根据项目中的 package.json 文件自动给下载项目中所需的全部依赖 4. npm insall 包名   --sava-dev (npm inst

    2024年02月15日
    浏览(40)
  • 20个npm常用命令及详解

    作为JavaScript开发者,npm(Node Package Manager)是我们每天都会使用的工具。以下是20个常用的npm命令,它们对于高效地管理和发布你的Node.js项目至关重要。下面将列出20个常用的npm命令,希望对大家开发学习有所帮助。 ## 1. ` npm init ` 这个命令用于初始化一个新的Node.js项目。当

    2024年04月22日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包