问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程

创作时间:
作者:
@小白创作中心

npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程

引用
CSDN
1.
https://blog.csdn.net/u012347650/article/details/137489560

npm(Node Package Manager)是JavaScript生态系统中最重要的包管理工具之一,它极大地简化了代码模块的安装、共享和管理过程。本文将深入解析npm命令行工具的全方位操作指南,涵盖包的安装与管理、镜像源设置、脚本执行以及包发布流程等内容,帮助开发者更好地利用npm提升开发效率。

npm,全称为Node Package Manager,是专为JavaScript生态系统设计的软件包管理系统,尤其与Node.js平台紧密关联。作为Node.js的默认包管理工具,npm为开发者提供了便捷的方式来安装、共享、分发和管理代码模块。
npm作为JavaScript世界不可或缺的基础设施,极大地促进了代码复用和协作。

一、npm包安装与管理

1.安装包

命令:
npm install <package-name>

作用: 安装指定的npm包作为项目依赖。

例子:

$ npm install express  

默认情况下,这会将包安装在
node_modules
目录下,并且如果项目中有
package.json
文件,还会将该包添加到
dependencies
字段。

全局安装:

$ npm install -g <package-name>  

使用
-g

--global
参数进行全局安装,这样可以在系统全局范围内访问这个包,而不是仅限于当前项目。

2.保存依赖

  • 命令: 自
    npm 5.0.0
    以后,
    --save

    --save-dev
    已经成为默认行为,无需显式指定。
  • npm install
    相当于
    npm install --save
    ,将包添加到
    dependencies
  • npm install --save-dev
    将包添加到
    devDependencies
    ,适用于开发阶段需要但生产环境中不需要的工具。

3.更新依赖

  • 命令:
    npm update
  • 作用: 更新指定包至最新版本(符合
    package.json
    中指定的版本范围)。
  • 例子:
$ npm update express  

4.查看已安装包

  • 命令:
    npm list
  • 作用: 列出当前项目所有已安装的依赖及其版本。
  • 例子:
$ npm list  
  • npm list --depth=0: 只列出顶级依赖,不显示子依赖。

5.搜索包

  • 命令:
    npm search
  • 作用: 在npm仓库中搜索包含给定关键词的包。
  • 例子:
$ npm search express  

6.清除缓存

  • 命令:
    npm cache clean --force
    (旧版)或
    npm cache clean --all
    (新版)
  • 作用: 清除npm的本地缓存。
  • 例子:
$ npm cache clean --force  

7.版本管理

  • 命令:
    npm version
  • 作用: 更新项目版本号(遵循语义化版本控制SemVer规则,如
    patch

    minor

    major
    )。
  • 例子:
$ npm version patch  
  • npm outdated: 显示项目中过时的依赖包。

8.卸载包

  
- `npm uninstall <package-name>`:卸载本地项目的一个包。
- `npm uninstall -g <package-name>`:卸载全局安装的包。
  

9.设置和查询配置

  • npm config set
    :设置npm配置项。
  • npm config get
    :查询npm配置项的值。
  • npm config ls
    :列出所有的npm配置。

10.其他

  • npm audit
    :检查项目依赖是否存在已知安全漏洞。
  • npm shrinkwrap

    npm lock
    (在npm 5+中引入
    package-lock.json
    ):锁定依赖版本,确保每次安装都得到一致的结果。

二、npm镜像源设置

在国内使用npm(Node Package Manager)时,由于地理位置和网络限制,直接从npm官方源下载包可能会比较慢。为了提升下载速度和稳定性,很多国内的公司和组织提供了npm的镜像服务。以下是一些国内常用的优秀npm镜像源推荐及使用方法:

  1. 淘宝NPM镜像
npm --registry=https://registry.npm.taobao.org install <package-name>  
  • 持久使用
npm config set registry https://registry.npm.taobao.org  
  1. cnpmjs镜像
  • Registry 地址:http://r.cnpmjs.org/
  • 可以通过cnpm客户端(一个基于npm的增强版命令行工具)来使用它,首先安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org  

然后直接使用
cnpm
替代
npm
命令。

要检查当前使用的npm镜像源,可以运行以下命令:

npm config get registry  

要恢复到官方源,只需设置回官方Registry地址:

npm config set registry https://registry.npmjs.org/  

注意:由于互联网服务可能发生变化,请在使用前访问各镜像网站确认最新的使用指南和地址。同时,不同镜像的同步策略和服务状态也可能有所差异,请根据实际需求选择合适的镜像源。

三、npm脚本运行

npm(Node Package Manager)允许用户在package.json文件中定义自定义脚本,这些脚本可以通过npm run命令来执行。这一特性使得项目管理和自动化任务变得极为方便,比如构建项目、运行测试、启动开发服务器、部署应用等等。

-命令:
npm run
-作用: 根据
package.json
中的
scripts
字段执行预定义的脚本。
-例子:

示例1:基本脚本命令

// package.json 文件片段
{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "start": "node app.js", // 启动应用程序
    "build": "webpack --mode production", // 使用webpack进行生产环境构建
    "test": "jest", // 运行Jest测试套件
    "lint": "eslint .", // 使用ESLint检查代码规范
    "serve": "vue-cli-service serve", // Vue CLI项目启动本地开发服务器
    "format": "prettier --write '**/*.{js,jsx,json,css,md}'" // 格式化代码
  },
  // ... 其他字段
}  

如何运行这些脚本?

对于上述package.json文件中的每个脚本,你可以通过如下命令来运行它们:

  • 启动应用程序:
npm run start  
  • 其他命令
npm run build //构建项目
npm run test //运行测试
npm run lint //检查代码规范
npm run serve //启动本地开发服务器
npm run format //格式化代码  
  • npm run
    会创建一个新的shell来执行指定的脚本命令,所以你可以像在shell脚本中那样使用管道(
    |
    )、重定向(

    )、逻辑运算符(
    &&

    ||
    )等。

  • 可以通过
    npm run-script
    的方式来代替
    npm run
    ,但后者更为常见和简洁。

  • 有些脚本名称具有特殊含义,例如
    prebuild

    postbuild
    会在
    build
    脚本前后自动执行。

  • 参数传递:若要向脚本传递参数,可以使用

    分隔符,例如:
    npm run my-script -- --arg1 value1 --arg2 value2

示例2:传递参数和环境变量

在npm脚本中还可以传递参数和使用环境变量。

若要向脚本传递参数,可以使用–分隔符,例如:npm run my-script – --arg1 value1 --arg2 value2。

"scripts": {
  "env-test": "node script.js $npm_config_env_variable",
}  

运行脚本并传入环境变量:

npm run env-test -- --env-variable=value  

这里,
$npm_config_env_variable
将会被替换为
--env-variable=value
传入的值。

示例3:组合多个命令

如果你需要执行一系列命令,可以使用&&符号连接多个命令,或者使用
npm-run-all
等第三方包来并行或顺序执行脚本:

"scripts": {
  "deploy": "npm run build && npm run deploy-to-server",
}  

在上述示例中,
npm run deploy
将会先执行
build
脚本,成功后再执行
deploy-to-server
脚本。

通过这种方式,npm脚本极大地增强了项目自动化能力,使得开发者能够更好地组织和执行项目生命周期中的各个步骤。

三. npm包制作发布

创建自己的npm包并成功发布、维护至npm官方网站,可以连接全球范围内的开发者、包作者与使用者,共同推动着Node.js生态的繁荣与发展。

  • 命令:
    npm publish
  • 作用: 将当前目录下符合npm发布要求的包发布到npm仓库。
  • 前提: 已经登录npm账户 (
    npm login
    ),并且当前目录下有合法的
    package.json

    README.md
    等文件。

具体请查看《如何开发创建自己的npm包并成功发布、维护至npm官方网站

以上命令仅覆盖了npm部分基础和常用的功能,实际使用时还有许多其他命令可供探索,包括但不限于删除包、查看包信息、链接本地包等。建议查阅npm官方文档获取完整信息。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号