如何搭建npm私有仓库及发布npm包

一 npm介绍

1.1 npm概述

npm是世界上最大的软件注册表。来自全球的javascript开源开发人员使用npm共享和借用软件包,许多组织也使用npm管理私人开发。

 

 

npm由三个不同部分组成:

网站 https://www.npmjs.com/

使用该网站发现软件包,设置配置文件以及管理npm体验的其他方面。例如,您可以设置组织(组织)来管理对公共或私有软件包的访问。

 

命令行界面(CLI)

该CLI从终端运行,并且是如何大多数开发商NPM互动(NPM的cli是随同NodeJS一起安装的)

 

注册表 https://www.npmjs.com/signup

该注册表是JavaScript软件及其周围的元信息的大型公共数据库(注册账号后在npm网站自行发布npm包)

1.2 使用npm后

调整适用于您的应用程序的代码包,或直接合并它们。

下载您可以立即使用的独立工具。

运行软件包而不使用npx下载。

与任何npm用户在任何地方共享代码。

将代码限制为特定的开发人员。

创建组织(组织)来协调软件包的维护,编码和开发人员。

通过使用组织来组建虚拟团队。

管理多个版本的代码和代码依赖项。

基础代码更新时,可以轻松更新应用程序。

发现解决同一难题的多种方法。

查找正在从事类似问题和项目的其他开发人员。

 

1.3 入门

1.3.1 环境搭建

要开始使用npm,你得先安装nodejs,NPM是随同NodeJS一起安装的包管理工具:

nodejs下载地址:https://nodejs.org/zh-cn/download/

下载安装完成后,打开cmd终端输入

node -v

npm -v

查看是否安装成功:

 

1.3.2 注册表账号注册登录

方式一: 官网注登录页面自行注册登录

https://www.npmjs.com/signup

 

方式二: 终端命令行注册登录

 

注册:

$ npm adduser

 

// 会出现以下内容

Username: mcmohd // 用户名(注意别和已有的账号名称相同)

Password: // 密码

Email: (this IS public) mcmohd@gmail.com // 邮箱

=================================================================

登录:

$ npm login

 

// 依次输入以下内容

Username: // 用户名(拼写了现有帐户的用户名,则将使用拼写错误的名称创建一个新帐户。如需有关意外创建帐户的帮助,请联系npm支持

Password: // 密码

Email: (this IS public) mcmohd@gmail.com // 邮箱

测试是否登录

npm whoami // 回车后显示你的用户名就说明登录成功

 

 

npm账号相关: https://docs.npmjs.com/getting-started/

 

1.3.3 npm Enterprise(企业) 配置和登录

https://docs.npmjs.com/configuring-your-registry-settings-as-an-npm-enterprise-user 配置

https://docs.npmjs.com/logging-in-to-an-npm-enterprise-registry-from-the-command-line 登录

 

1.4 共享软件包并与他人合作

如果您选择公开共享您的软件包,则无需付费。要使用和共享私人软件包,您需要升级您的帐户。要与他人共享,请创建名为npm Orgs的组织,并邀请其他人与您私下(收费)或公开(免费)合作。或者,您可以为公司注册npm的私有实例,称为npm Enterprise,这样您就可以在内部开发不公开共享的软件包。

官方针对不同类型的收费如下:

https://www.npmjs.com/products

 

1.5 CLI参考文档

https://docs.npmjs.com/cli-documentation/ 官网

https://www.npmjs.cn/cli/access/ 中文文档

 

二 使用npm包

2.1 关于软件包和模块

参考: https://docs.npmjs.com/about-packages-and-modules

2.1.1 关于包格式

软件包是以下任意一种:

 

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

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

c)解析为(b)的URL。

d)<name>@<version>用(c)在注册表上发布的A。

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

F)甲<name>,其具有latest满足标签(E)。

g)git克隆后得到(a)的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可以是任何标签,沙,或分支,可以作为参数被供给git checkout。默认commit-ish值为master

 

2.1.2 关于模块

模块是在任何文件或node_modules目录可以由Node.js的加载require()功能。

 

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

 

具有package.json包含"main"字段的文件的文件夹。

包含index.js文件的文件夹。

一个JavaScript文件。

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

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

 

var req = require('request')

我们可能会说"变量req引用request模块"。

 

通常我们引用包会通过require或者import这两种引用模块的方法引入

 

2.2 npm软件包的范围,访问级别和可见性

npm软件包的可见性取决于包含该软件包的范围(名称空间),以及为该软件包设置的访问级别(私有或公共)。

注意:要创建组织范围的包,必须首先创建组织。有关更多信息,请参见" 创建组织 "。

 

公共注册表

 

范围

访问权限

可以查看和下载

可以写(发表)

组织

私人的

对组织具有读取权限的团队成员

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

组织

上市

大家

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

用户

私人的

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

程序包所有者和已被授予对该程序包读写权限的用户

用户

上市

大家

程序包所有者和已被授予对该程序包读写权限的用户

无范围

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值