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

这篇具有很好参考价值的文章主要介绍了npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程,JINGWHALE技术分享,npm,前端,node.js,后端,ios,android,小程序

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官方文档获取完整信息。

npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程,JINGWHALE技术分享,npm,前端,node.js,后端,ios,android,小程序文章来源地址https://www.toymoban.com/news/detail-849249.html

到了这里,关于npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Go反射终极指南:从基础到高级全方位解析

    在本文中,我们将全面深入地探讨Go语言的反射机制。从反射的基础概念、为什么需要反射,到如何在Go中实现反射,以及在高级编程场景如泛型编程和插件架构中的应用,本文为您提供一站式的学习指南。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作

    2024年02月08日
    浏览(49)
  • 【全方位解析】如何获取客户端/服务端真实 IP

    1.比如在投票系统开发中,为了防止刷票,我们需要限制每个 IP 地址只能投票一次 2.当网站受到诸如 DDoS(Distributed Denial of Service,分布式拒绝服务攻击)等攻击时,我们需要快速定位攻击者 IP 3.在渗透测试过程中,经常会碰到网站有 CDN(Content Distribution Network,内容交付网络

    2024年02月07日
    浏览(57)
  • 【30天熟悉Go语言】9 Go函数全方位解析

    作者 :秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。 源码系列专栏 :Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign)、Nacos源码系列、RocketMQ源码系列、Spring Cloud Gateway使用到源码分析系列、分布式事务Seata使用到

    2024年02月10日
    浏览(63)
  • Go泛型解密:从基础到实战的全方位解析

    本篇文章深入探讨了Go语言的泛型特性,从其基础概念到高级用法,并通过实战示例展示了其在实际项目中的应用。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人

    2024年02月08日
    浏览(47)
  • Python教程(24)——全方位解析Python中的装饰器

    Python装饰器是一种特殊的函数,它接收一个函数作为参数,然后返回一个新的函数,用于扩展或修改原始函数的行为。装饰器提供了一种便捷的方式来在不修改被装饰函数源代码的情况下,增加、修改或包装函数的功能。通俗点说就是尽量不修改原有功能代码的情况下,给原

    2024年02月02日
    浏览(60)
  • 深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

    C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函数:入门指南 C 中的变量和 C 语言中的作用域规则 C 中的数据类型 运算符及其类型 C 语言中的类型转换 参考文章: C 语言注释

    2024年02月02日
    浏览(45)
  • 一文章让你彻底了解OpenAI:CSDN独家全方位解析

    目录 什么是OpenAI OpenAI的发展历程 相关名词解释 API​ GPT​ GPT-2​ GPT-3​

    2024年02月09日
    浏览(59)
  • 深度解析知网AIGC检测:从理论到实践,全方位探索前沿技术

    大家好,小发猫降ai今天来聊聊深度解析知网AIGC检测:从理论到实践,全方位探索前沿技术,希望能给大家提供一点参考。降ai辅写 以下是针对论文AI辅写率高的情况,提供一些修改建议和技巧,可以借助此类工具: 还有: 标题: \\\"深度解析知网AIGC检测:从理论到实践,全方

    2024年03月16日
    浏览(67)
  • C++环形缓冲区设计与实现:从原理到应用的全方位解析

    环形缓冲区(Circular Buffer),也被称为循环缓冲区(Cyclic Buffer)或者环形队列(Ring Buffer),是一种数据结构类型,它在内存中形成一个环形的存储空间。环形缓冲区的特点是其终点和起点是相连的,形成一个环状结构。这种数据结构在处理流数据和实现数据缓存等场景中具

    2024年02月07日
    浏览(61)
  • “探索C语言操作符的神秘世界:从入门到精通的全方位解析“

    各位少年,我是博主 那一脸阳光 ,今天来分享深度解析C语言操作符,C语言操作符能帮我们解决很多逻辑性的问题,减少很多代码量,就好比数学的各种符号,我们现在深度解剖一下他们。 在追求爱情的道路上,拥有吸引人的外表与内在气质固然重要,它们如同璀璨星辰,

    2024年01月25日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包