npm 包和模块简介

news2024/11/16 1:49:08

目录

1、关于公共npm注册表

2、关于包和模块

2.1、关于包

2.2、关于包格式

2.3、npm包git URL格式

2.4、关于模块

3、关于范围

3.1、作用域和包的可见性

 4、关于公共软件包 

5、关于私有包

6、npm包范围、访问级别和可见性


 

1、关于公共npm注册表

公共npm注册表是JavaScript包的数据库,每个包都由软件和元数据组成。开源开发人员和公司的开发人员使用npm注册表向整个社区或其组织的成员贡献包,并下载包在自己的项目中使用。

2、关于包和模块

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

我们可以打开官网地址进行搜索对应的包或者模块。地址如下:npmhttps://www.npmjs.com/

2.1、关于包

包是由package.json文件描述的文件或目录。一个包必须包含一个package.json文件才能发布到npm注册表。

包可以是无作用域的,也可以是对用户或组织有作用域的,有作用域的包可以是私有的,也可以是公共的。

2.2、关于包格式

包是以下任何一种:

(a) 包含由package.json文件描述的程序的文件夹。

(b) 包含(a)的gzip压缩包。

(c) 解析为(B)的URL

(d)与(c)一起在注册表上发布的<name>@<version>

(e) 指向(d)的<name>@<tag>。

(f) 具有满足(e)的<name>标签的latest。

(g) 一个git url,当克隆时,会包含(a)

2.3、npm包git URL格式

用于npm包的Git URL可以通过以下方式格式化:

  • git://github.com/user/project.git#commit-ish
  • git+ssh://user@hostname:project.git#commit-ish
  • git+http://user@hostname/project/blah.git#commit-ish
  • git+https://user@hostname/project/blah.git#commit-ish

commit-ish可以是任何标记、sha或分支,可以作为 git checkout的参数。默认的commit-ish是master。

2.4、关于模块

模块是node_modules目录中可以由Node.jsrequire()函数加载的任何文件或目录。

要被Node.js require()函数加载,模块必须是以下之一:

  • 包含package.json文件的文件夹,该文件包含"main"字段。
  • 一个JavaScript文件

注意:由于模块不需要有package.json文件,因此并非所有模块都是包。只有具有package.json文件的模块也是包

在Node程序的上下文中,module也是 是从一个文件中加载的。例如,在以下程序中:

var req = require('request')

以上是变量req引用了request模块”。

3、关于范围

必须使用npm版本2或更高版本才能使用作用域。若要升级到最新版本的npm,请在命令行上运行

npm install npm@latest -g

当您注册npm用户帐户或创建组织时,您将被授予与您的用户或组织名称匹配的范围。您可以将此范围用作相关包的命名空间。

作用域允许您创建一个与其他用户或组织创建的包同名的包,而不会发生冲突。

当在package.json文件中作为依赖项列出时,作用域包前面会加上它们的作用域名称。作用域名称是@和斜杠之间的所有内容:

示例:

@npm/package-name

范围是npm

@npmcorp/package-name

范围是npmcorp

3.1、作用域和包的可见性

  • 无作用域的包始终是公共的。

  • 私有包始终是有作用域的。
  • 默认情况下,作用域包是私有的;发布时必须传递命令行标志以使其公开。

 4、关于公共软件包 

作为npm用户或组织成员,您可以创建和发布公共包,任何人都可以下载并在自己的项目中使用。

  • 无作用域的公共包存在于全局公共注册表命名空间中,并且可以仅使用包名称在package.json文件中引用:package-name.
  • 作用域的公共包属于用户或组织,并且在作为依赖项包含在 package.json file: 文件:

@username/package-name

@org-name/package-name

5、关于私有包

要使用私有包,必须:

1、使用npm 2.7.0或更高版本。要升级,请在命令行上运行

npm install npm@latest -g

2、拥有付费用户或组织帐户

使用npm私有包,您可以使用npm注册表来托管仅对您和选定的协作者可见的代码,允许您在项目中管理和使用私有代码以及公共代码。

私有包总是有一个作用域,有作用域的包默认是私有的。

用户范围的私有包只能由您和您授予读或读/写访问权限的协作者访问。

组织范围内的私有包只能由被授予读或读/写访问权限的团队访问。

6、npm包范围、访问级别和可见性

npm包的可见性取决于包含包的作用域(命名空间),以及包的访问级别(私有或公有)设置。

注意:若要创建组织范围的包,必须首先创建组织。

公共注册表:

适用范围

访问级别

可以查看和下载

可写(发布)

组织

私人的

组织中对包具有读访问权限的团队成员

组织中对包具有读写访问权限的团队成员

组织

公众

所有人

组织中对包具有读写访问权限的团队成员

用户

私人的

包所有者和已被授予对包的读访问权限的用户

已被授予对包的读写访问权限的包所有者和用户

用户

公众

所有人

已被授予对包的读写访问权限的包所有者和用户

非作用域

公众

所有人

已被授予对包的读写访问权限的包所有者和用户

注意:只有用户帐户可以创建和管理未限定作用域的包。组织只能管理限定范围的包。

 

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

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

相关文章

学习单片机的三个步骤:基础知识、编程语言和实践项目

当然&#xff01;学习单片机的过程可以分为以下三个步骤&#xff1a; 学习基础知识&#xff1a;在开始学习单片机之前&#xff0c;首先需要掌握一些基础知识。了解数字电子学和模拟电子学的基本原理是很重要的&#xff0c;包括数字和模拟信号、逻辑门、计数器、寄存器等。还需…

K8S应用安全检测(调用分析 容器健康 审计日志)

应用安全检测 1 应用安全检测1.1 调用分析1.1.1 sysdig基础1.1.2 命令实践 1.2 容器监控1.2.1 CAdvisor1.2.2 Falco基础1.2.3 Falco实践1.2.4 进阶实践1.2.5 可视化实践 1.3 审计日志1.3.1 日志解读1.3.2 审计日志 1 应用安全检测 1.1 调用分析 1.1.1 sysdig基础 学习目标 …

第六章 mac上用的软件

1、brew.sh/index_zh-cn 2、网易有道词典 3、SizeUP 4、 5、chrome浏览器插件 6、快捷键

最近,智慧公厕空位引导系统非常受园区、写字楼、工厂、大型商场青睐,大家都在争着上!

随着城市化进程的不断推进&#xff0c;楼宇智慧公厕管理系统的应用已经成为城市管理的重要一环。通过智能化的监控和管理&#xff0c;公厕的卫生状况得到了有效控制&#xff0c;为市民提供了更好的公厕服务。一、楼宇智慧公厕系统案例展示楼宇智慧公厕系统是一种基于智能科技的…

基础算法-差分矩阵

&#xff08;一&#xff09;课堂笔记 &#xff08;二&#xff09;思路详解 如果扩展到二维&#xff0c;我们需要让二维数组被选中的子矩阵中的每个元素的值加上c,是否也可以达到O(1)的时间复杂度。答案是可以的&#xff0c;考虑二维差分。 a[][]数组是b[][]数组的前缀和数组&a…

less预处理语言的运用之-变量拼接那点事

less语法的技巧总结&#xff0c;很基础&#xff0c;熟练掌握后能提高我们在大型项目中的开发效率 a:0.5; showdaw-px:100; mkcolor1:#6ec5ff; num:1; .outer{//拼接的字符串在变量后面&#xff0c;需要在冒号后面加~width:~"{showdaw-px}px";//拼接的字符串在冒号后…

Vue脚手架使用 【实战篇】

一、一个组件引用另一个组件&#x1f349; (1) 引入被引用的组件&#x1f95d; 自己创建的组件 lzq.vue 组件必须创建在components文件夹下 将自己创建的组件导入到主页面中 (2)声明该组件&#x1f95d; 本人理解&#xff1a; 声明组件可以理解为声明一个变量一样 (3)使用组…

【sql注入-报错注入2】GTID_SUBTRACT()函数 报错注入

目录 GTID_SUBTRACT()报错注入 一、语法介绍&#xff1a; 二、报错原因 网络安全小圈子 &#xff08;***注&#xff1a;注意看版本要求&#xff09; GTID_SUBTRACT()报错注入 一、语法介绍&#xff1a; 版本&#xff1a; MySQL >5.6 GTID_SUBTRACT()函数是MySQL中的一…

Unity20223.4f1中添加Tile的方法

如图&#xff0c;按顺序选择添加Rectangular&#xff08;矩形地图&#xff09;即可&#xff0c;矩形是常规瓦片地图 除常规瓦片地图外&#xff0c;Unity 还提供 Hexagonal Point Top Tilemap 和 Hexagonal Flat Top Tilemap 瓦片地图。六角形瓦片通常用于战略类桌面游戏&#x…

vertical-align middle不生效如何修改

vertical-align middle不生效如何修改 vertical-align的定义1.在父元素中增加display:table-cell&#xff0c;vertical-align 写在在父元素中2.在父元素中增加空的span元素&#xff0c;并设置其高度为100%&#xff0c;vertical-middle居中3.父元素line-height 100% 和子元素ver…

迭代读取文件

使用 torch.utils.data.dataset.Dataset 收集数据信息&#xff0c;创建数据集。 使用 import torch.utils.data.dataloader 创建一个可以批量迭代的数据载入器&#xff0c;并通过 for 循环批量读取所有文件的数据。 import torch.utils.data.dataset as dataset import torch…

windows凭据收集

实验目的 掌握windows凭据的收集方法 实验环境 windows server 2008 实验工具 mimikatz procdump 实验原理 用户凭证获取&#xff0c;一般是指 ntlm hash 或者可以直接利用的明文密码。 实验内容 使用mimikatz获取用户信息 使用procdump获取当前用户的明文密码 实验步骤…

IDEA(java: 错误: 不支持发行版本 5)

问题描述 今天在IDEA中运行项目时&#xff0c;突然蹦出error:java:不支持发行版本5报错&#xff0c;原因是项目运行的时候&#xff0c;jdk版本与本地的版本不一致&#xff0c;我的本地jdk版本是11&#xff0c;但是项目默认成了5&#xff0c;所以不一致&#xff0c;建议根据自己…

MIT 6.S081 教材第八章内容 -- Crash recovery -- 04

MIT 6.S081 教材第八章内容 -- Crash recovery -- 02 引言什么是 File system crashFile system crash示例File system logginglog_write函数end_op函数File system recovering Log写磁盘流程File system challenges 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第八…

Python启动UDP服务,监听并接收客户端数据

可以使用Python的socket库实现UDP协议的验证&#xff0c;以下是一个简单的示例代码&#xff1a; 服务器&#xff1a; [rootlocalhost python]# cat udp_server.py import socket# 创建一个UDP socket udp_socket socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 绑定到…

springboot超市进销存系统

本次设计任务是要设计一个超市进销存系统&#xff0c;通过这个系统能够满足超市进销存系统的管理及员工的超市进销存管理功能。系统的主要功能包括&#xff1a;首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、 商品信息管理、采购信…

Linux离线安装docker

问题&#xff1a; service docker start /status 都会报如下错误 报错&#xff1a;docker:unrecognized service 使用docker -v也能正常显示docker版本但唯独就是不能启动成功 找了很多资料都没有一个详细的答案和步骤 试了很多方法今天终于解决&#xff0c; 对此进行做个…

前端Vue自定义精美商品分类列表组件 侧边栏商品分类组件 category组件 左边分类category 右边列表List

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。 通过组件化开发&#xff0c;可以有效实现…

TortoiseGit 入门指南03:提交

你现在应该已经有了一个仓库&#xff0c;在工作过程中会对项目做一些修改&#xff0c;比如添加代码、修复错误等等&#xff0c;你将不定时的将这些更改 提交&#xff08;commit&#xff09;到代码仓库。 术语 提交 是将 暂存区 内容放入 版本库 。这个过程涉及到 Git 的一些基…

Jina AI 受邀出席 WAIC 2023「科技无障碍」论坛,与行业专家共话 AI 普惠未来

7 月 6 日&#xff0c;2023 世界人工智能大会&#xff08;WAIC&#xff09;在上海世博中心及世博展览馆开幕&#xff0c;并在浦东张江、徐汇西岸设分会场&#xff0c;同步在闵行等产业集聚区开展同期活动。本届大会由上海市人民政府和国家发改委、工信部、科技部、国家网信办、…