向npm注册中心发布包(上)

目录

1、创建package.json文件

[1.1 fields 字段](#1.1 fields 字段)

[1.2 Author 字段](#1.2 Author 字段)

[1.3 创建 package.json 文件](#1.3 创建 package.json 文件)

[1.4 自定义 package.json 的问题](#1.4 自定义 package.json 的问题)

[1.5 从当前目录提取的默认值](#1.5 从当前目录提取的默认值)

[1.6 通过init命令设置配置选项](#1.6 通过init命令设置配置选项)

[2、创建Node.js 模块](#2、创建Node.js 模块)

[2.1 创建一个package.json 文件](#2.1 创建一个package.json 文件)

[2.2 创建在另一个应用程序需要模块时将加载的文件](#2.2 创建在另一个应用程序需要模块时将加载的文件)

[2.3 测试模块](#2.3 测试模块)

[3、关于包的 README 文件](#3、关于包的 README 文件)

[3.1 创建README.md文件并将其添加到包中](#3.1 创建README.md文件并将其添加到包中)

[3.2 更新现有包README文件](#3.2 更新现有包README文件)

4、创建和发布无作用域的公共包

[4.1 创建无作用域的公共包](#4.1 创建无作用域的公共包)

[4.2 检查包裹内容是否包含敏感或不必要的信息](#4.2 检查包裹内容是否包含敏感或不必要的信息)

[4.3 测试您的软件包](#4.3 测试您的软件包)

[4.4 发布无作用域的公共包](#4.4 发布无作用域的公共包)


1、创建package.json文件

您可以将package.json文件添加到您的软件包中,以便于其他人管理和安装。发布到注册表的包必须包含package.json文件。

package.json文件:

  • 列出了项目的所有依赖项
  • 指定包的版本以及语义控制规则
  • 使您的构建具有重复性,因此更容易与其他开发者共享

注意:为了自己的发布的包,能够更容易的在npm官网上找到,建议最好还是在package.json文件中的description字段添加对应的描述信息。

1.1 fields 字段

package.json文件必须包含"name""version"字段。

"name"字段包含包的名称,必须是小写字母,并且可以包含连字符和下划线。

"version"字段必须采用x.x.x格式,并遵循语义版本控制指南。

1.2 Author 字段

如果要在"author"字段中包含软件包作者信息,请使用以下格式(电子邮件和网站都是可选的):

javascript 复制代码
Your Name <email@example.com> (http://example.com)

示例:

javascript 复制代码
{
  "name": "test_a",
  "version": "1.0.0",
  "description": "this is test package",
  "main": "read_file.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon read_file"
  },
  "author": "zhouxxx<724518201@qq.com>(spacebox.blog.csdn.net) ",
  "license": "ISC",
  "devDependencies": {
   
  }
}

1.3 创建 package.json 文件

可以通过CLI命令交互式来创建默认的 package.json 文件。

1、我们可以先创建一个目录,然后再进入该目录

javascript 复制代码
mkdir package
cd /Users/zhou/package

2、运行一下命令:

javascript 复制代码
npm init

3、根据提示,输入对应字段的信息,然后回车进入下一步。

如果创建的 package.json 所有字段,都设置为默认,可以添加参数:--yes

javascript 复制代码
npm init --yes

1.4 自定义 package.json 的问题

1、在主目录中,创建一个名为.npm-init.js的文件。

2、要添加自定义问题,请使用文本编辑器,使用prompt函数添加问题:

javascript 复制代码
module.exports = prompt("what's your favorite flavor of ice cream, buddy?", "I LIKE THEM ALL");

3、要添加自定义字段,请使用文本编辑器将所需字段添加到.npm-init.js文件:

javascript 复制代码
module.exports = {
  customField: 'Example custom field',
  otherCustomField: 'This example field is really cool'
}

1.5 从当前目录提取的默认值

  • name: 当前目录名
  • version: 默认 1.0.0
  • description: 来自README的信息,或空字符串""
  • scripts: 默认创建空test脚本
  • keywords:空
  • author:空
  • license: ISC
  • bugs: 当前目录中的信息(如果存在)
  • homepage: 当前目录中的信息(如果存在)

1.6 通过init命令设置配置选项

您可以为init命令设置默认配置选项。例如,要设置默认作者电子邮件、作者姓名和许可证,请在命令行上运行以下命令:

javascript 复制代码
> npm set init-author-email "example-user@example.com"
> npm set init-author-name "example_user"
> npm set init-license "MIT"

2、创建Node.js 模块

2.1 创建一个package.json 文件

1、创建一个package.json 文件,在命令行中,切换到根目录或者 Node.js 模块,运行 npm init

2、为必填字段提供响应(name 和 version)以及main 属性

  • name: 模块的名字
  • version: 初始模块版本,建议遵循语义版本控制指南,从1.0.0开始

2.2 创建在另一个应用程序需要模块时将加载的文件

在文件中,添加一个函数作为exports对象的属性。这将使该函数对其他代码可用:

javascript 复制代码
exports.isarray = function(arr) {
    let toString = {}.toString();
    return toString.call(arr) === '[object Array]';
}

2.3 测试模块

1、发布你的包到npm

  • 对于私有包和无作用域包,使用 npm publish
  • 对于作用域的公共包,使用 npm publish --access pulic

2、在命令行中,在项目目录之外创建一个新的测试目录。

bash 复制代码
mkdir test-directory

3、切换到新目录

bash 复制代码
cd /path/to/test-directory

4、在test目录中,安装模块:

bash 复制代码
npm install <your-module-name>

5、在test目录中,创建一个test.js文件,它需要您的模块并将模块作为方法调用。

6、在命令行上,运行node test.js。应显示发送到console.log的消息。

3、关于包的 README 文件

为了帮助其他人在npm上找到你的包,并在他们的项目中使用你的代码,我们建议在你的包目录中包含一个README文件。您的README文件可能包括安装、配置和使用软件包中代码的说明,以及用户可能发现有帮助的任何其他信息。README文件将显示在软件包页面上。

npm包的README文件必须位于包的根目录下。

3.1 创建README.md文件并将其添加到包中

1、在文本编辑器中,在包根目录中创建一个名为README.md的文件。

2、在README.md文件中,添加有关软件包的有用信息。

3、保存README.md文件。

注意:.md 文件表示Markdown 文件

3.2 更新现有包README文件

README文件仅在发布新版本的软件包时在软件包页面上更新。要更新自述文件:

1、在文本编辑器中,更新README.md文件的内容。

2、保存 README.md 文件

3、在命令行中,切换到根目录中运行如下命令:

bash 复制代码
npm version patch
npm publish

4、创建和发布无作用域的公共包

作为npm用户,您可以创建未作用域的包,用于您自己的项目,并将其发布到npm公共注册表,供其他人在他们的项目中使用。无作用域的包始终是公共的,并且仅由包名引用:

bash 复制代码
package-name

有关包作用域、访问和可见性的详细信息,请参阅 npm 包和模块简介

注意:在发布公共的非作用域npm包之前,您必须注册一个npm用户帐户。

4.1 创建无作用域的公共包

1、在命令行上,为您的包创建一个目录:

bash 复制代码
mkdir my-test-package

2、切换到包的根目录:

bash 复制代码
cd my-test-package

3、如果你使用git来管理你的包代码,在包根目录下,运行以下命令,将git-remote-url替换为你的包的git远程URL:

bash 复制代码
git init
git remote add origin git://git-remote-url

4、在软件包根目录中,运行npm init命令。

5、根据响应提示生成 package.json 文件。

6、创建一个README文件

,解释包代码是什么以及如何使用它。

4.2 检查包裹内容是否包含敏感或不必要的信息

将敏感信息发布到注册表可能会伤害用户、损害开发基础结构、修复成本高昂,并使您面临法律的诉讼的风险。我们强烈建议在将您的包发布到注册表之前删除敏感信息,例如私钥、密码、个人身份信息

(PII)和信用卡数据。

对于不太敏感的信息,如测试数据,请使用.npmignore.gitignore文件来防止发布到npm注册表。

4.3 测试您的软件包

为了减少发布bug的可能性,我们建议在将包发布到npm注册表之前对其进行测试。要测试您的包,请使用包目录的完整路径运行npm install

bash 复制代码
npm install path/to/my-package

4.4 发布无作用域的公共包

1、在命令行中,切换到包的根目录。

bash 复制代码
cd /path/to/package

2、要将公共包发布到npm注册表,请运行:

bash 复制代码
npm publish

注意:如果您使用GitHub Actions发布包,则可以为您发布的每个包生成出处信息。有关详细信息

3、要查看您的公共包页面,请访问https://npmjs.com/package/\* package-name

,将package-name* 替换为您的包的名称。公共包在npm网站上的包名下面会显示public

4、测试

运行命令 npm install jiang-isarray

javascript 复制代码
npm install jiang-isarray

新建文件 test.js ,内容如下:

javascript 复制代码
var isArray = require('jiang-isarray')
console.log(isArray);
console.log(isArray([1,2,3,4,5]))    //  true
console.log(isArray({}))    //  false
相关推荐
也无晴也无风雨1 小时前
深入剖析输入URL按下回车,浏览器做了什么
前端·后端·计算机网络
Martin -Tang1 小时前
Vue 3 中,ref 和 reactive的区别
前端·javascript·vue.js
FakeOccupational3 小时前
nodejs 020: React语法规则 props和state
前端·javascript·react.js
放逐者-保持本心,方可放逐3 小时前
react 组件应用
开发语言·前端·javascript·react.js·前端框架
曹天骄4 小时前
next中服务端组件共享接口数据
前端·javascript·react.js
阮少年、4 小时前
java后台生成模拟聊天截图并返回给前端
java·开发语言·前端
郝晨妤6 小时前
鸿蒙ArkTS和TS有什么区别?
前端·javascript·typescript·鸿蒙
AvatarGiser6 小时前
《ElementPlus 与 ElementUI 差异集合》Icon 图标 More 差异说明
前端·vue.js·elementui
喝旺仔la6 小时前
vue的样式知识点
前端·javascript·vue.js
别忘了微笑_cuicui6 小时前
elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案
前端·javascript·elementui