npm 包和模块简介

目录

1、关于公共npm注册表

2、关于包和模块

2.1、关于包

2.2、关于包格式

2.3、npm包git URL格式

2.4、关于模块

3、关于范围

3.1、作用域和包的可见性

 4、关于公共软件包 

5、关于私有包

扫描二维码关注公众号,回复: 15598048 查看本文章

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包的可见性取决于包含包的作用域(命名空间),以及包的访问级别(私有或公有)设置。

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

公共注册表:

适用范围

访问级别

可以查看和下载

可写(发布)

组织

私人的

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

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

组织

公众

所有人

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

用户

私人的

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

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

用户

公众

所有人

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

非作用域

公众

所有人

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

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

猜你喜欢

转载自blog.csdn.net/u014388408/article/details/131650813