【npm】node包管理工具npm的介绍和基础使用

简言

npm 是 Node.js 的 包管理器(Package Manager),它是专门用于管理 Node.js 项目中第三方库的工具。

本文介绍下npm和其使用方法。

npm介绍

npm 是世界上最大的软件注册中心。各大洲的开源开发者都使用 npm 共享和借用软件包,许多组织也使用 npm 管理私人开发。
npm 由三个不同的组件组成:

  • the website(网站) : 使用该 npm官网网站发现软件包、设置配置文件并管理 npm 体验的其他方面。例如,您可以设置组织来管理对公共或私有软件包的访问。
    -the Command Line Interface (CLI)( 命令行界面 (CLI)):通过终端CLI 运行,是大多数开发人员与 npm 交互的方式。
  • the registry(注册表): 注册表是一个大型公共数据库,收录了 JavaScript 软件及其相关元信息。

使用 npm 可以:

  • 为你的应用程序调整代码包,或整合现有的代码包。
  • 下载可立即使用的独立工具。
  • 使用 npx,无需下载即可运行软件包。
  • 在任何地方与任何 npm 用户共享代码。
  • 将代码限制给特定的开发人员。
  • 创建组织,协调软件包维护、编码和开发人员。
  • 使用组织组建虚拟团队。
  • 管理多个版本的代码和代码依赖关系。
  • 更新底层代码时,轻松更新应用程序。
  • 发现解决同一难题的多种方法。
  • 找到正在解决类似问题和开展类似项目的其他开发人员。

npm packages and modules(npm软件包和模块)

npm 注册表包含软件包,其中许多软件包也是 Node 模块,或者包含 Node 模块。

软件包

软件包是由 package.json 文件描述的文件或目录。软件包必须包含 package.json 文件,才能发布到 npm 注册表。
软件包可以是非作用域的,也可以是作用域为用户或组织的,作用域为用户或组织的软件包可以是私有的,也可以是公用的。

模块

模块是 node_modules 目录中的任何文件或目录,可通过 Node.js require() 函数加载,现在推荐用ESM引用了,common.js逐渐成为过去式。

由于不要求模块必须有 package.json 文件,因此并非所有模块都是软件包。只有拥有 package.json 文件的模块才是软件包。

安装npm

npm 是node包管理工具,所以安装node就会自动安装npm(不建议单独安装npm)。 所以安装node即可,强烈建议使用nvm(node版本管理)安装使用node,nvm介绍和使用。

使用 npm

安装node和配置好环境后,在终端输入 npm -v ,显示npm版本即可正常使用。如果提示没找到大概率是环境没配置好。
在这里插入图片描述

创建项目

使用npm最基础的就是创建一个新的node项目(node软件包)了,下面统称为项目。
可以实现创建好一个名为项目名的空文件夹或者打开终端在命令行创建:
projectname为项目名

mkdir projectname

然后cd到新项目路径下,输入npm init 初始化项目生成package.json文件:

cd projectname
npm init 

一直点回车即可,后续可以找到package.json手动更改或者使用默认设置:

npm init -y

在这里插入图片描述

package.json 文件必须包含 "name"和 "version"字段。
name字段包含软件包名称,必须是小写单词,可以包含连字符和下划线。
version"字段的格式必须是 x.x.x,并遵循语义版本准则。

创建 index.js文件。

exports.default = function CheckType() {return "这是一个index.js文件";
};

这是commonjs格式的,如果你想创建ESM格式的,请先在package.json下更改type值为module。
在这里插入图片描述
至此一个最简单的项目完成了,你可以发布分享你的项目,以便他人引用。
首先你要在官网注册一个npm账号,
然后在命令行登录:

npm login 

登录成功后,可以输入 npm whoami查看登录用户名:
在这里插入图片描述
然后发布项目:

npm publish

在这里插入图片描述
注意:

  • npm发布需要是npm源,建议使用 nrm 切换源(npx nrm use npm 或者npm下载nrm再切换)
  • 每次publish都要更改项目版本号,在这里插入图片描述
  • 名字冲突会报错,换一个不冲突的名字就行,报错提示:You do not have permission to publish “check-type”. Are you logged in as the correct user?

npm常用命令

  • npm init : 初始化项目生成package.json
  • npm -v : 查看版本
  • npm install 包名 : 下载依赖包
  • npm update : 更新依赖包
  • npm uninstall 包名 : 卸载依赖包
  • npm fund : 列出依赖列表
  • npm help : 获取有关 npm 的帮助
  • npm cache clean : 清除npm 缓存,这个有点不常用,如果不起作用,加上–force 参数强制清除缓存。
  • npm publish : 发布公共软件包。
  • npm login : 登录
  • npm whoami : 显示 npm 用户名
  • npm link : 软链接依赖包
  • npm run-script: 运行自定义命令脚本
  • npm start: 运行主文件脚本。

结语

结束了。

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

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

相关文章

一个数据库表格缺少自动增加的字段导致添加一条数据失败

一个数据库表格缺少自动增加的字段导致添加一条数据失败。最近要整理出一个cms网站源程序,因此新建了一个目录,将需要的文件复制到该目录。复制好以后,试用的时候发现添加留言失败。经过数小时的查找原因,最后找到原因&#xff0c…

互联网智慧工地源码,“互联网+建筑大数据”SaaS微服务架构,支持PC端、手机端、数据大屏端

智慧工地源码,支持多端展示(PC端、手机端、平板端)SaaS微服务架构,项目监管端,工地管理端源码 智能时代的风暴已经融入了我们生活的每个方面,智能手机、iPad等移动终端智能设备已经成为我们生活的必需品。智…

能耗数据采集网关在实际生产中的应用及其带来的能效提升-天拓四方

能耗数据采集网关是一种集成多种传感器和数据通信技术的智能化设备,它能够实现对生产现场各类能耗数据的实时采集、存储和传输。通过网关设备,企业可以构建一个全面、高效的能源管理系统,对生产过程中的能源消耗进行实时监控和精准控制&#…

flex布局(后端工程师快上手写前端)

本文更加适合后端同学需要上手写前端本人实习前后端都干,只能说工作越来越难找了 不知道大家前端掌握的怎么样,我是来重新复习了 css前置知识(熟悉可以不看): 1.如果父标签不设置宽高,那么父标签的宽高会…

logback最全日志输出,你需要的这里都有,全是干货

有工作经历的都知道,日志打印非常重要,往往是定位生产问题的唯一方式。 如果不了解日志的配置,先查看我另一篇文章基于springboot的logback日志管理,文章里面日志输出,分级、分文件目录,还有各种配置以及说…

四面体单元悬臂梁的Matlab有限元编程 | 实体单元 | Matlab源码 | 理论文本

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

全面剖析一下ThreadLocal

什么是ThreadLocal? ThreadLocal英文翻译过来就是:线程本地量,它其实是一种线程的隔离机制,保障了多线程环境下对于共享变量访问的安全性。 看到上面的定义之后,那么问题就来了,ThreadLocal是如何解决共享…

Java 中创建线程多种方式介绍

在 Java 中,创建线程有多种方式,以下是最常见的四种: 1. **通过继承 Thread 类** 2. **通过实现 Runnable 接口** 3. **通过实现 Callable 接口** 4. **通过使用 Executor 框架** 每种方式都有其特点和适用场…

Go编译报错 link: running gcc failed: exit status 1(已解决)

背景 在对一个开源的Go程序二次开发 重新编译时 , 报错截图如下 报错文字如下:关键信息 link: running gcc failed: exit status 1 $ go build -o orchestrator-didi -i go/cmd/orchestrator/main.go go build: -i flag is deprecated # command-li…

客服提效工具:一键回复,效率翻倍

在快节奏的工作环境中,每一秒都是宝贵的。对于客服人员来说,每天面对的是海量的咨询和回复,如何在保证服务质量的同时,提高工作效率?最近,我被同事安利了一个神奇的工具——客服宝聊天助手。这是一款专为客…

基于单片机的天然气泄漏报警系统设计论文

目 录 摘 要 I Abstract II 1 引 言 1 2天然气泄露检测报警系统的方案设计 4 2.1 方案选择 4 2.2 天然气泄露报警系统的整体设计方案 5 2.2.1天然气泄漏报警器工作原理 5 2.2.2天然气泄漏报警器的结构 5 3天然气泄露报警的硬件部分设计 7 3.1 STC89C52单片机 7 3.2 传感器的选…

IJCAI23 - Continual Learning Tutorial

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 本篇 Tutorial 主要介绍了 CL 中的一些基本概念以及一些过往的方法。 Problem Definition Continual Learning 和 Increm…

【MOMO_Tips】批量将word转换为PDF格式

批量将word转换为PDF格式 1.打开文件–>选项–>自定义功能区–>开发工具–>确定 2.点开开发工具,选择第一个visual basic 3.进入页面后找到插入–>模块,就可以看到这样的画面之后将下列vba代码复制粘贴到模块中 Sub ConvertWordsToPd…

进程的内存布局与进程的虚拟地址空间

进程的内存布局 历史沿袭至今,C 语言程序一直都是由以下几部分组成的: ⚫ 正文段。也可称为代码段,这是 CPU 执行的机器语言指令部分,文本段具有只读属性,以防止程序由于意外而修改其指令;正文段是可以共…

精读《React Conf 2019 - Day1》

1 引言 React Conf 2019 在今年 10 月份举办,内容质量还是一如既往的高,如果想进一步学习前端或者 React,这个大会一定不能错过。 希望前端精读成为你学习成长路上的布道者,所以本期精读就介绍 React Conf 2019 - Day1 的相关内…

2024主流测试工具测评,总有一款适合你!

大家好!我是测试元宝~ 在软件开发周期中,测试是确保产品质量的关键环节。随着企业对于软件质量的要求日益提升,测试人员面临着前所未有的挑战,“工欲善其事必先利其器”,选择一款高效、实用的软件测试工具&#xff0c…

LeetCode # 547. 省份数量

547. 省份数量 题目 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有…

Git 基于ED25519、RSA算法生成 SSH 密钥

Git 基于ED25519、RSA算法生成 SSH 密钥 基于ED25519算法&#xff0c;生成密钥对命令如下&#xff1a; ssh-keygen -t ed25519 -C "邮箱地址"基于RSA算法&#xff0c;生成密钥对命令如下&#xff1a; ssh-keygen -t rsa -C "<注释内容>"基于ED255…

若依集成MybatisPlus步骤

目录 一、新建业务模块二、集成MybatisPlus三、测试 一、新建业务模块 新建Maven模块&#xff0c;并建立如下目录 新模块的pom.xml添加如下内容 <description>业务模块</description><dependencies><!-- Mysql驱动包 --><dependency><groupI…

Locust中wait_time中匿名函数使用方法浅析

前言 翻出之前做个压测项&#xff0c;看到locust中对等待时间的实现方式感到好奇&#xff0c;于是总结下来。 源代码实现 def between(min_wait, max_wait):"""Returns a function that will return a random number between min_wait and max_wait.Example:…