发布一个npm package

Posted 开心的小程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发布一个npm package相关的知识,希望对你有一定的参考价值。

1. 创建一个package.json文件

发布到npm registry的包必须包含一个packge.json文件。

1. 必需name字段

要求:

1. 只能是一个单词,但是可以包含-或_

2. 只能是小写字母

2. 必需version字段

version字段必须遵循语义化版本规范。

每变更一次,就需要修改一次版本号;告知使用者变更的范围和程度。

语义化版本规范

说明 阶段 规则 示例
初次发布 新产品 从1.0.0开始 1.0.0
向后兼容的bug修复 发布补丁 增加第三个数字 1.0.1
向后兼容的新功能 次要发布

增加第二个数字,并且重置第三个数字

1.10
改变较大,和之前不兼容 主要发布

增加第一个数字,后面的重置

2.0.0

 

 

 

 

 

 

 

3. 可选description字段

便于在npm网站查找

4. 可选author字段

可以是邮箱或者网址

Your Name <email@example.com> (http://example.com)

5. 可选main字段

入口文件。

6. 可选bin字段

可以实现全局命令。

1. 在node_modules文件夹中增加一个lyra的文件夹(含package.json和main对应的文件)

   该文件可以通过require引用。

2. 设置bin字段{命令:路径},相当于node + 文件名

"bin": {
   "lyra": "./index.js(或者main对应的入口文件)" 
}

3. 在main对应的入口文件头部添加,表明使用node命令

#! usr/bin/env node

4. npm link 后将代码复制到全局环境位置,可以直接使用该命令

2. 如何创建一个package.json文件

1. npm init -y

// 也可以
npm init --yes

创建一个默认文件。然后在文件内修改。

2. npm init 

根据逐步回答问题,创建package.json.

还可以自定义package.json的文件内容和npm init的问题。

3. npm set

> npm set init.author.email "example-user@example.com"
> npm set init.author.name "example_user"
> npm set init.license "MIT"

3. 注册npm 

发布npm前需要登陆,登陆需要先注册: 

npm adduser

密码要求复杂密码。

如果已经注册过, 则需要登陆:

npm login

查看是否登陆成功

npm who am i

4. 发布及失败原因

1. 发布

首先确保当前源是npm 的源,而不是第三方如cnpm的源。

npm publish

2. 失败原因查找

1. 确定package文件中name名称是否重复

2.确定邮箱是否已经验证

5.取消发布

npm unpublish XXX --force

 

以上是关于发布一个npm package的主要内容,如果未能解决你的问题,请参考以下文章

如何将 gitlab 合并请求用作 npm 模块

发布Npm包到GitHub Packages

在npm上发布一个自己的包

npm

npm中package.json详解

发布一个npm package