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

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

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"字段中包含软件包作者信息,请使用以下格式(电子邮件和网站都是可选的):

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

示例:

{
  "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、我们可以先创建一个目录,然后再进入该目录

mkdir package
cd /Users/zhou/package

2、运行一下命令:

npm init

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

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

npm init --yes

1.4 自定义 package.json 的问题

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

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

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

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

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命令设置默认配置选项。例如,要设置默认作者电子邮件、作者姓名和许可证,请在命令行上运行以下命令:

> 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对象的属性。这将使该函数对其他代码可用:

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

2.3 测试模块

1、发布你的包到npm

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

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

mkdir test-directory

3、切换到新目录

cd /path/to/test-directory

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

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、在命令行中,切换到根目录中运行如下命令:

npm version patch
npm publish

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

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

package-name

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

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

4.1 创建无作用域的公共包

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

mkdir my-test-package

2、切换到包的根目录:

cd my-test-package

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

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

npm install path/to/my-package

4.4 发布无作用域的公共包

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

cd /path/to/package

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

npm publish

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

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

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

4、测试

运行命令 npm install jiang-isarray

npm install jiang-isarray

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

var isArray = require('jiang-isarray')
console.log(isArray);
console.log(isArray([1,2,3,4,5]))    //  true
console.log(isArray({}))    //  false


相关文章
|
1月前
|
前端开发 小程序 API
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
【微信小程序】-- 使用 npm 包 - Vant Weapp(四十一)
|
1月前
|
资源调度 小程序 前端开发
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
【微信小程序】-- npm包总结 --- 基础篇完结(四十七)
|
4月前
|
JavaScript
Nodejs 第七章(发布npm包)
Nodejs 第七章(发布npm包)
29 0
|
3月前
|
资源调度
#发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou
#发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou
166 0
message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
|
1月前
|
供应链 JavaScript Shell
供应链投毒预警 | 恶意NPM包利用Windows反向shell后门攻击开发者
本周(2024年02月19号),悬镜供应链安全情报中心在NPM官方仓库(https://npmjs.com)中发现多起NPM组件包投毒事件。攻击者利用包名错误拼写方式 (typo-squatting)在NPM仓库中连续发布9个不同版本的恶意包,试图通过仿冒合法组件(ts-patch-mongoose)来攻击潜在的NodeJS开发者。
33 2
|
2月前
|
JavaScript 前端开发 API
npm 包管理工具
npm 包管理工具
48 0
|
3月前
|
前端开发 开发工具 git
面试官:你之前的工作发布过npm包吗?
面试官:你之前的工作发布过npm包吗?
|
4月前
|
前端开发 开发者
NPM包脚手架:开启前端开发新纪元
NPM包脚手架:开启前端开发新纪元

推荐镜像

更多