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 <package-name> 相当于 npm install <package-name> --save,将包添加到dependencies
    • npm install <package-name> --save-dev 将包添加到devDependencies,适用于开发阶段需要但生产环境中不需要的工具。

3. 更新依赖

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

4. 查看已安装包

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

5. 搜索包

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

6. 清除缓存

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

7. 版本管理

  • 命令: npm version <semver>
  • 作用: 更新项目版本号(遵循语义化版本控制SemVer规则,如patchminormajor)。
  • 例子:
    $ npm version patch
    
  • npm outdated: 显示项目中过时的依赖包。

8. 卸载包

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

9.设置和查询配置

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

10.其他

  • npm audit:检查项目依赖是否存在已知安全漏洞。
  • npm shrinkwrapnpm lock(在npm 5+中引入package-lock.json):锁定依赖版本,确保每次安装都得到一致的结果。

二、npm镜像源设置

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

  1. 淘宝NPM镜像

    • 搜索地址:http://npm.taobao.org/

    • Registry 地址:https://registry.npm.taobao.org/

    • 使用方法:

      • 临时使用
        npm --registry=https://registry.npm.taobao.org install <package-name>
        
      • 持久使用
        npm config set registry https://registry.npm.taobao.org
        
    • 腾讯云NPM镜像
      Registry 地址:https://mirrors.cloud.tencent.com/npm/

    • 华为云NPM镜像
      Registry 地址:https://mirrors.huaweicloud.com/repository/npm/

    • 阿里云NPM镜像
      Registry 地址:https://registry.npm.alibaba.com/

  2. 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 <script-name>
- 作用: 根据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 <script-name>的方式来代替npm run <script-name>,但后者更为常见和简洁。
  • 有些脚本名称具有特殊含义,例如prebuildpostbuild会在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.jsonREADME.md等文件。

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity MySql安装部署与Unity连接 上篇

1.前言 最近项目用到MySql&#xff0c;记录一下安装部署过程。 数据量过大或者需要管理用户数据的时候用mysql的话数据结构比较清晰明了&#xff0c;便于管理。 2.安装MySql Unity版本&#xff1a;2019.4.16 MySql版本&#xff1a;8.2.0 下载地址&#xff1a;MySql 下载…

PostgreSQL入门到实战-第七弹

PostgreSQL入门到实战 PostgreSQL查询语句(四)官网地址PostgreSQL概述PostgreSQL中DISTINCT 语句介绍PostgreSQL中DISTINCT 语句实操更新计划 PostgreSQL查询语句(四) 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https:…

【测试篇】Selenium + Java环境搭建

文章目录 Selenium Java环境搭建配置系统环境变量PATH验证环境是否搭建成功常见问题&解决办法 Selenium Java环境搭建 Java版本最低要求为8&#xff0c;这里默认大家都下载好了Java。&#x1f606; 下载chrome浏览器&#xff08;点我下载&#xff09; 观察chrome版本。…

设备监控公有云

在数字化浪潮的推动下&#xff0c;越来越多的企业开始关注设备监控公有云这一重要领域。设备监控公有云通过云计算技术&#xff0c;实现对设备的远程监控、管理和维护&#xff0c;大大提高了企业的运营效率和管理水平。HiWoo Cloud平台作为领先的设备监控公有云解决方案提供商&…

【数据库】PostgreSQL源码编译安装方式与简单配置(v16.2)

PostgreSQL源码编译安装方式与简单配置&#xff08;v16.2&#xff09; 一、PostgreSQL安装基本介绍1.1 几种PostgreSQL的安装方式1.2 删除原有的PostgreSQL1.3 编译安装过程简介 二、源码编译安装方式详情2.1 下载源代码2.2 编译安装运行 configure执行 make执行 make install …

力扣207.课程表

你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如…

SSM党员管理系统

一、系统介绍 党员管理系统: 可以方便管理人员对党员管理系统的管理&#xff0c;提高信息管理工作效率及查询效率&#xff0c;有利于更好的为用户提供服务。 主要的模块包括&#xff1a; 1、后台功能&#xff1a; 管理员角色&#xff1a;首页、个人中心&#xff0c;党员管理…

【java面试题-Redis篇-2024】

##java面试题大全 详细面试题-持续更新中-点击跳转 点赞、收藏、加关注 java基础面试题 ##java面试题大全1、什么是 Redis2、Redis 的数据结构类型3、Redis 为什么快4、什么是跳跃表5、什么是 I/O 多路复用6、什么是缓存击穿、缓存穿透、缓存雪崩7、什么是布隆过滤器8、热…

经典文章:卷积神经网络的运作原理

https://brohrer.mcknote.com/zh-Hans/how_machine_learning_works/how_convolutional_neural_networks_work.html 参考资料 https://aitechtogether.com/article/38900.html https://www.ruanyifeng.com/blog/2017/07/neural-network.html http://neuralnetworksanddeeplea…

快速入门Kotlin④集合

集合概述 继承关系(List、Set和Map均继承了Collection) List List 是一个接口,用于表示列表(List)数据结构。它是一个有序的集合,允许重复元素。 listOf 创建的列表是不可变的,而 mutableListOf 创建的列表是可变的,允许对其进行添加、删除和更新操作。 fun main()…

fast_bev 学习笔记

目录 一. 简述二. 输入输出三. github资源四. 复现推理过程4.1 cuda tensorrt 版 训练修改图像数 一. 简述 原文:Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline FAST BEV是一种高性能、快速推理和部署友好的解决方案&#xff0c;专为自动驾驶车载芯片设计…

插入排序解读

在众多的排序算法中&#xff0c;插入排序以其直观易懂和在某些特定场景下的高效性而备受青睐。今天&#xff0c;我们就来深入探索一下插入排序的原理、实现方式以及它的优缺点。 一、算法原理 插入排序相当于打牌中抓牌插入的方式。插入排序的工作方式是通过构建有序序列&…

功能测试_验证qq账号的合法性

案例&#xff1a;验证qq账号的合法性&#xff08;要求&#xff1a;6-10位的自然数&#xff09; 使用等价类设计用例案例&#xff1a; 步骤&#xff1a; 1:明确需求&#xff1a;qq账号的合法性 2:划分等价类&#xff1a;有效等价类、有效取值、无效等价类、无效取值 3&…

三、SpringBoot3 整合 SpringMVC

本章概要 实现过程web 相关配置静态资源处理自定义拦截器(SpringMVC 配置) 3.1 实现过程 创建程序引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www…

双目运算符和单目运算符的重载

目录 题目 源码 结果示例 题目 建立一个矩阵类&#xff0c;可以完成指定的操作或运算。 说明&#xff1a; 矩阵为2行3列&#xff0c;基类型为整型&#xff1b;操作或运算&#xff1a;初始化&#xff08;>>&#xff09;、输出&#xff08;<<&#xff09;、赋值…

SpringBoot学习笔记(一)

SpringBootSpringBoot学习笔记&#xff08;一&#xff09; 1.SpringBoot配置2.yml3.SpringBoot配置&#xff08;1&#xff09;Value注解获取配置参数&#xff08;2&#xff09;Environment获取配置参数&#xff08;3&#xff09;ConfigurationProperties方式&#xff08;4&…

使用 Meltano 将数据从 Snowflake 导入到 Elasticsearch:开发者之旅

作者&#xff1a;来自 Elastic Dmitrii Burlutskii 在 Elastic 的搜索团队中&#xff0c;我们一直在探索不同的 ETL 工具以及如何利用它们将数据传输到 Elasticsearch&#xff0c;并在传输的数据上实现 AI 助力搜索。今天&#xff0c;我想与大家分享我们与 Meltano 生态系统以及…

【汇编】_Visual Studio2019写32位汇编

目录 第一步&#xff1a;创建新项目 1. 空项目—下一步 2. 选择位置—填写项目名—创建 第二步&#xff1a;项目生成依赖项 1. 右击项目名—生成依赖项—生成自定义 2. 选中masm—确定 第三步&#xff1a;创建源文件 1. 源文件—添加—新建项 2. 选择C文件—创建新文件…

Android Studio中查看和修改project的编译jdk版本

android studio中查看和修改project的编译jdk版本操作如下&#xff1a; File->settings->Build,Execution,deployment->Build Tools->Gradles 进入Gradles页面可以查看并修改project的编译jdk版本&#xff0c;如图所示

安卓远离手机app

软件介绍 远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机&#xff0c;保护眼睛&#xff0c;节约时间。 下载 安卓远离手机app