nodeJS安装与npm命令

本文详细介绍了Node.js的下载安装、npm的配置与nvm的使用,重点讲解了npm的基本操作,包括初始化、安装、卸载、更新模块以及查看已安装模块、配置路径等。此外,还提到了npm的版本管理工具nvm和npm的包管理功能,如npm start、npm test等命令的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm就是node的包管理工具。node package manage

一、下载安装node与npm

1、下载

简介:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

下载:直接去官网下载,安装的时候选择Add to PATH

验证:安装完了之后,node和npm就一起安装了,验证的命令为node -vnpm -v

2、修改 node保存位置

注:如果只像上面这样子安装的话,接下来安装的所有模块都会自动安装到C盘的node_modules里面,所以我们这里需要修改默认保存位置

  • 1、在安装node.js的文件夹(如D:\all-env\node)中,新建两个文件夹node_globalnode_cache
  • 2、cmd输入npm config set prefix "D:\all-env\node\node_global"npm config set cache "D:\all-env\node\node_cache"
  • 3、增加环境变量NODE_PATH值为D:\all-env\node\node_global\node_modules,在PATH中添加D:\all-env\node\node_global

测试位置是否修改成功:cmd输入npm install express -g,发现express是安装在手动指定的那个位置

3、配置npm
  • 1、查看当前npm配置:npm config edit, 可以弹出当前npm配置的txt文件,直接修改这个txt文件,就是修改对应的npm配置
  • 2、设置npm代理:直接修改npm config set proxy=http://127.0.0.1:8087和npm config set https-proxy http://server:port
    • 有时候内网无法 直接用npm,就需要设置代理了。当然这个代理也可以直接到 上面那个config edit 弹出的txt文件里面去设置
    • 设置代理用户名和密码npm config set proxy http://username:password@server:port npm confit set https-proxy http://username:password@server:port,这个不一定要用
  • 3、修改npm的模块下载仓库:npm install -g cnpm --registry=registry_url,registry_url指的是国内提供的一些npm仓库地址,有两个https://registry.npm.taobao.org或者http://r.cnpmjs.org/。如npm install -g cnpm --registry=https://registry.npm.taobao.org
  • 4、使用cnpm:cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm
    • 配置cnpm路径到环境变量:首先找到cnpm的路径,一般是在node的安装目录D:\all software\allEnv\node\node_cache,会有一个cnpm和cnpm.cmd文件(进入这个路径运行cnpm -v是会成功的)。然后把这个路径添加到环境变量path里面去,就好了
    • 是否安装成功:cnpm -v
  • 5、设置npm为淘宝镜像(这个好像没用):npm config set registry http://registry.npm.taobao.org/
  • 6、还原:npm config set registry https://registry.npmjs.org/
  • 7、临时使用淘宝镜像:npm --registry https://registry.npm.taobao.org install express
4、安装nvm

nvm: 这个是nodejs的版本管理工具,可以直接切换多个nodejs版本。感觉应该还是毕竟好用的

  • 下载安装:github搜索nvm-windows,然后往下面拉,就可以看到下载链接了
  • nvm命令如下:
    • nvm list: 查看当前所有的 node 版本
    • nvm install v10.13.0: 安装指定的node版本
    • nvm use --delete-prefix 10.13.0切换到指定的版本

二、NPM基本使用

注:为什么要保存至package.json?因为其他开发者使用(命令提示符执行npm install,则会根据package.json下载所有需要的包)

  • 1、npm安装插件:npm install [-g] [–save-dev]
  • 2、-g:全局安装。全局安装可以通过命令行在任何地方调用它
  • 3、–save:将保存配置信息至package.json(package.json是nodejs项目配置文件);
  • 4、-dev:保存至package.json的devDependencies节点,不指定-dev将保存至dependencies节点;
  • 5、使用npm卸载插件:npm uninstall [-g] [–save-dev]
  • 6、使用npm更新插件:npm update [-g] [–save-dev]
  • 7、更新全部插件:npm update [–save-dev]
  • 8、查看npm帮助:npm help
  • 9、查看当前目录已安装插件:npm list
  • 10、

NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。

npx: npx是npm后来加的一个功能。npm的m是Management,npx的x可以理解为execute。有些包需要用命令行调用,但不需要全局安装,这时npx就起作用了。比如当执行npx xxx的时候,先看xxxz在$path里面有没有,如果没有,就找当前目录的node_modules里面有没有,还是没有的话,才安装xxx来执行

1、npm init 在项目中引导创建一个package.json文件

  • (1)基础语法: 安装包的信息可保持到项目的package.json文件中,以便后续的其它的项目开发或者他人合作使用,也说package.json在项目中是必不可少的。
npm init [-f|--force|-y|--yes]

2、npm install安装模块

  • (-1)npm install报错: Can't find Python executable "python", you can set the PYTHON env variable。原因为node里面有的包依赖于python,所以需要装python环境。直接去官网下载python(必须要2.7的版本,3的版本不行),然后安装好了之后添加到环境变量就好了
  • (0)package-lock.json文件:这个文件是npm 5之后版本出来的,用来锁定当前的版本号。
    • 因为之前npm install的时候是根据package.json来安装,所以可能出现安装的版本不一致,导致错误。不过现在如果有package-lock.json就会先读取这个package-lock.json,而后再读取package.json
    • 以前更新包:直接改package.json里面的版本,然后再npm install了。不过5版本后就不支持这样做了,因为版本已经锁定在package-lock.json里了,修改package.json里面的版本号已经不起作用了
    • 现在更新包:现在只能npm install xxx@x.x.x 这样去更新我们的依赖,然后package-lock.json也能随之更新
  • (1)基础语法: npm install之后,package-lock.json里面的所有模块都会被自动安装到开发目录下的node_modules下
    • npm install的缺点:npm 5.0之后这些缺点已经不明显了
      • <1>npm install的时候巨慢。特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。
      • <2>同一个项目,安装的时候无法保持安装的版本一致性。由于package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本,下面三个版本号在安装的时候代表不同的含义。
        • “5.0.3”: 表示安装指定的5.0.3版本。三个数字依次为主版本号、次版本号和补丁版本号
        • “~5.0.3”: 表示安装5.0.X中最新的版本
        • "^5.0.3: 表示安装5.X.X中最新的版本
      • <3>安装的时候,包会在同一时间下载和安装,中途某个时候,一个包抛出了一个错误,但是npm会继续下载和安装包。因为npm会把所有的日志输出到终端,有关错误包的错误信息就会在一大堆npm打印的警告中丢失掉,并且你甚至永远不会注意到实际发生的错误。
    • 直接安装,默认会安装最新的版本,且为本地安装(local):npm install gulp
    • 安装指定版本: 由于npm update不是很好用,所以这个也可以当成更新来使用,可以指定升级到指定版本。安装包并将信息保持到项目的package.json文件中。npm install gulp@3.9.1
    • 关于package.json里面模块名字前面的@types: 表示这个模块需要先到node_modules里面的@types文件夹里面去查找,如果没找到的话,再到外面找。如"@types/react": "^16.8.1"
// @scope表示作用域 -g或者local(不加)
npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <tarball file>
npm install <tarball url>
npm install <folder>

alias: npm i
common options: [-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [--dry-run]
npm install @types/react@16.9.23 --save-dev   // 开发环境依赖
npm install @types/react-dom@16.9.5 --save-dev   // 开发环境依赖
npm install react@16.8.6 --save   // 生产环境依赖
npm install react-dom@16.8.6 --save   // 生产环境依赖
  • (2)package.json文件中,项目依赖的版本号的表示方法如下:项目对模块的依赖可以使用下面的 3 种方法来表示(假设当前版本号是 1.1.0 )
    • 项目版本的顺序:alpha版本之后是beta版本,之后是候选版,最后是正式版。
    • Alpha版本: 内部测试版。这个版本是指,这些版本是第一次发布,也是最不稳定的.大多数报告的错误包括严重缺陷都被解决了,但仍有一部分明显暴露出来的问题,其中可能还会包含安全问题…但是可以满足一般需求。
    • beta版本: 外部测试版。这个版本是指,所有有关关键数据丢失和安全漏洞的解决.当前版本的API不再改变了,让贡献模块和贡献主题的作者可以开始升级他们的项目.大多数的升级路径问题解决了,并且能成功升级Druapl.org的数据库到新的Drupal版本中.。beta版本通常只面向部分用户开放,当然也可能面向所有用户开放,如果是面向所有用户开发,这个过程就叫做公测
    • 发布候选版: 候选版通常只在没有严重的漏洞被报告的时候再已有的beta版上建立的.这些版本被认为代码已经接近稳定,一些Drupal开发社区还认为候选版相当于官方的 .0 版本.此时,不会有更多的可用功能更改,可翻译字符串通常不再变化.
如:v5.0.0-beta.9   v5.0.0-alpha.32
兼容模块新发布的补丁版本:~1.1.0、1.1.x、1.1
兼容模块新发布的小版本、补丁版本:^1.1.0、1.x、1
兼容模块新发布的大版本、小版本、补丁版本:*、x
"antd": "^4.0.0-rc.1"
  • (3)安装命令的一些后缀
    • <1>-S, --save: 安装包信息将加入到package.json的dependencies(生产阶段的依赖)里面。npm install gulp --save 或 npm install gulp -S"dependencies": {"gulp": "^3.9.1"}
    • <2>-D, --save-dev: 安装包信息将加入到package.json的devDependencies(开发阶段的依赖)里面,所以开发阶段一般使用它。npm install gulp --save-dev 或 npm install gulp -D"devDependencies": {"gulp": "^3.9.1"}
    • <3>-O, --save-optional: 安装包信息将加入到package.json的optionalDependencies(可选阶段的依赖)里面,这个一般比较少。npm install gulp --save-optional 或 npm install gulp -O"optionalDependencies": {"gulp": "^3.9.1"}
    • <4>-E, --save-exact: 这个和-S,--save命令很像。安装包信息依然是加入到package.json的dependencies(生产阶段的依赖)里面,只不过这个安装之后,版本号前面没有^。npm install gulp --save 或 npm install gulp -S"dependencies": {"gulp": "3.9.1"}
    • <5>-g 或 --global: 这个即一个全局安装,安装在全局目录,不加后面这个-g就是局部安装。npm install gulp -g

3、npm uninstall卸载模块

  • (1)基础语法: 后面的后缀和上面的是一样的
npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional]

aliases: remove, rm, r, un, unlink

4、npm update 更新模块

  • (1)基础语法: 这个不是很好用,如果要升级到指定版本,还是用npm install安装指定版本的好。后面的后缀和上面的是一样的。这个update后面跟上版本号,好像是无效的。
  • 运行npm update之前需要运行npm outdated来查版本。而且这个npm update是把模块从npm outdated检查出来的Current版本,升级到Wanted版本。如,npm outdated命令之后,gulp模块Current版本为2.0.0,Wanted版本为2.7.0,Latest版本为4.0.2,那么执行npm update gulp,则只会升级到Wanted的2.7.0版本
npm update [-g] [<pkg>...]

5、npm outdated 检查已经过时的模块的Current、Wanted、Latest

  • (1)基础语法: 此命令会列出所有已经过时的包,对应的Current版本、Wanted版本和Latest版本
// 列出过时的模块的Current版本、Wanted版本和Latest版本
npm outdated [[<@scope>/]<pkg> ...]

6、npm ls 查看安装的模块

  • (1)基础语法: 查看安装的模块及依赖
npm ls [[<@scope>/]<pkg> ...]

aliases: list, la, ll

7、npm help 查看某条命令的详细帮助

  • (1)基础语法: 例如输入npm help install,系统在默认的浏览器或者默认的编辑器中打开本地nodejs安装包的文件/nodejs/node_modules/npm/html/doc/cli/npm-install.html
npm help <term> [<terms..>]

npm help install

8、npm root 查看包的安装路径

  • (1)基础语法: 输出 node_modules的路径
npm root [-g]

9、npm config 管理npm的配置路径

  • (1)基础语法: 输出 node_modules的路径
    • <1>对于config这块用得最多应该是设置代理,解决npm安装一些模块失败的问题。例如我在公司内网,因为公司的防火墙原因,无法完成任何模块的安装,这个时候设置代理可以解决。npm config set proxy=http://xxx
    • <2>又如国内的网络环境问题,某官方的IP可能被和谐了,幸好国内有好心人,搭建了镜像,此时我们简单设置镜像。npm config set registry="http://r.cnpmjs.org"
    • <3>也可以临时配置,如安装淘宝镜像。npm install -g cnpm --registry=https://registry.npm.taobao.org
npm config set <key> <value> [-g|--global]
npm config get <key>
npm config delete <key>
npm config list   // 列出所有配置
npm config edit
npm get <key>
npm set <key> <value> [-g|--global]

10、npm cache 管理模块的缓存

  • (1)基础语法: 最常用命令无非清除npm本地缓存npm cache clean
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>]

11、npm start 启动模块

  • (1)基础语法:
    • 该命令写在package.json文件scripts的start字段中,输入之后,则运行,他后面对应的命令。如:"scripts": {"start": "gulp -ws"},此时在cmd中输入npm start命令相当于执行gulpfile.js文件自定义的watch和server命令
    • 如果package.json文件没有设置start,则将直接启动node server.js
npm start [-- <args>]

12、npm stop 停止模块

  • (1)基础语法:
npm stop [-- <args>]

13、npm restart 重新启动模块

  • (1)基础语法:
npm restart [-- <args>]

14、npm test 测试模块

  • (1)基础语法:
    • 该命令写在package.json文件scripts的test字段中,可以自定义该命令来执行一些操作
    • 如:"scripts": {"test": "gulp release"},,此时在cmd中输入npm test命令相当于执行gulpfile.js文件自定义的release命令。
npm test [-- <args>]
npm tst [-- <args>]

15、npm version 查看npm版本

  • (1)基础语法:
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

'npm [-v | --version]' to print npm version
'npm view <pkg> version' to view a package's published version
'npm ls' to inspect current package/dependency versions

16、npm view 查看模块对应的一些信息

  • (1)基础语法: 这个还是好用,上面的npm outdated不一定可以用
npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
npm view <pkg> dependencies // 查看模块的依赖关系
npm view <pkg> repository.url // 查看模块的源文件地址
npm view <pkg> contributors // 查看模块的贡献者,包含邮箱地址
npm view <pkg> version // 查看模块的版本。这个是查看,对应模块的Latest版本

aliases: info, show, v

npm view babel-plugin-transform-class-properties

17、npm adduser 用户登录

  • (1)基础语法: 发布模板到npm社区前需要先登录,然后再进入发布的操作
npm adduser [--registry=url] [--scope=@orgname] [--always-auth]

18、npm publish 发布模块

  • (1)基础语法:
npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]

Publishes '.' if no argument supplied
Sets tag 'latest' if no --tag specified

19、npm access 在发布的包上设置访问级别

  • (1)基础语法:
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>]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值