如何发布一个 nodejs npm package 包

发布于 2021-11-29 12:51:20 字数 4685 浏览 1097 评论 0

1、认识 npm

在认识 npm 之前,你必须对 nodejs 有一定的了解。

Node包管理器(Node Package Manager)。它是一个 javascript 的软件套件管理系统,预设环境为 Node.js,从 Node.js0.6.3 版本开始,npm 被自动附带在安装包中。

npm 运行在命令行下,并用于管理相依性套件,npm 也允许使用者安装在 npm registry 上的 Node.js 应用程序。npm 由 Isaac Z. Schlueter 开发,为了符合 CommonJS 的规范,如 PHP 之于 PEAR、Perl 之于 CPAN,进而开发出 npm。

通过 npm 可以管理项目的需要和系统需要的模块。常用命名有:

## 项目本地安装与卸载
npm install --save package
npm uninstall --save package

## 系统全局安装与卸载
npm install --global package
npm uninstall --global package

2、认识 package.json

package.json 是描述一个 package 的文件,包含了模块的名称、版本、依赖等其他信息。

{
  "name": "YOUR_PACKAGE_NAME",
  "version": "1.0.0",
  "private": false,
  "description": "模块描述",
  "scripts": {},
  "preferGlobal": false,
  "bin": {},
  "main": "index.js",
  "keywords": [
    "关键词"
  ],
  "author": {
    "name": "cloudcome",
    "email": "cloudcome@163.com",
    "url": "http://ydr.me"
  },
  "homepage": "模块主页,通常是 github 主页",
  "repository": {
    "type": "git",
    "url": "模块仓库主页,通常是 github 主页"
  },
  "bugs": {
    "url": "模块 bug 反馈主页,通常是 github issues 页"
  },
  "dependencies": {},
  "devDependencies": {},
  "licenses": "MIT"
}

更多详细描述见这里 https://docs.npmjs.com/files/package.json

3、书写主程序

假设我们要写一个 package,名字叫 hei,使用者必须全局安装,实现以下效果:

< hei 你好
> 你好

< hei nodejs
> nodejs

< hei 再见
> 再见

重复你说的话。

新建文件夹 nodejs-hei,目录结构为:

- nodejs-hei
|-- bin
|	`-- hei
|-- index.js
|-- package.json
`-- readme.md

index.js

/**
 * repeat what you say
 * @author ydr.me
 * @date 2015-04-20 14:28:37
 */

'use strict';

module.exports = function (what) {
    return what;
};

package.json

{
  "name": "hei",
  "version": "1.0.0",
  "private": false,
  "description": "repeat what you say",
  "scripts": {},
  "preferGlobal": true,
  "bin": {
    "hei": "./bin/hei"
  },
  "engines": {
    "node": ">= 0.10.0"
  },
  "main": "index.js",
  "keywords": [
    "repeat",
    "cloudcome",
    "ydr.me"
  ],
  "author": {
    "name": "cloudcome",
    "email": "cloudcome@163.com",
    "url": "http://ydr.me"
  },
  "homepage": "https://github.com/cloudcome/nodejs-hei",
  "repository": {
    "type": "git",
    "url": "https://github.com/cloudcome/nodejs-hei"
  },
  "bugs": {
    "url": "https://github.com/cloudcome/nodejs-hei/issues"
  },
  "dependencies": {},
  "peerDependencies": {},
  "devDependencies": {},
  "licenses": "MIT"
}
  • bin 描述的是命令工具的文件
  • main 指向的入口文件

readme.md

# hei

repeat what you say

4、书写 bin 文件

bin/hei

#!/usr/bin/env node

var args =process.argv.slice(2);
var what = args.join(' ');

console.log(what);

注意:

bin 文件的换行符必须是 LF 格式,否则无法在 Linux 内核下正常执行。

5、测试

# 切换到当前项目目录
< node ./bin/hei 呵呵 你好
> 呵呵 你好

6、发布 package

1、首先需要在 npmjs.com 上注册账号: https://www.npmjs.com/signup

2、然后,在命令行里:

npm adduser

会提示你输入用户名和密码。

3、发布

< npm publish
> + hei@1.0.0

4、发布完成
全局安装刚才发布的模块

sudo npm install -g hei

在命令行里敲击:

< hei hello world
> hello world

7、附件

文章示例的 package:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

惜醉颜

暂无简介

0 文章
0 评论
786 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文