美文网首页Web前端之路让前端飞
如何发布package到npm社区

如何发布package到npm社区

作者: 你期待的花开 | 来源:发表于2017-08-26 20:46 被阅读246次

以发布一个iam-sun-iam-moonpackagenpm为例;

1、首先需要安装node和npm

2、编写模块

一个最简单的NPM包由主模块index.js和包描述文件package.json组成。

第一步

在项目的根目录下创建一个名字为node_modules的目录,此目录用来放置所有的node模块。

第二步

node_modules目录下创建一个名字为iam-sun-iam-moon目录。

第三步

iam-sun-iam-moon目录下新建两个文件:

  • index.js:
function iam-sun-iam-moon() {
  console.log("There is the iam-sun-iam-moon.");//主要代码
}
module.exports = iam-sun-iam-moon;
  • package.json:
    这个文件包含了module的所有信息,比如名称、版本、描述、依赖、作者、license等。
    执行npm init,系统会提示你输入所需的信息,不想输入的直接输入Enter可以跳过。
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (iam-sun-iam-moon)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author: xinyu
license: (ISC)
About to write to /Users/yu/Desktop/iam-sun-iam-moon/package.json:

{
  "name": "iam-sun-iam-moon",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "xinyu",
  "license": "ISC",
  "description": ""
}
Is this ok? (yes)

输入完成之后,系统会要你确认文件的内容是否有误,如果没有问题直接输入yes或者按enter,这样package.json就创建好了。

Package.json 属性说明

name - 包名。
version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords - 关键字

发布

  • 首先要注册一个npm账号
  • 更改.npmrc 中的配置为:
registry = http://registry.npmjs.org/.
  • 为了维护包,npm必须要使用仓库账号才允许将包发布到仓库中。
    注册账号的命令是npm adduser,按照提示填写相关信息即可。
  • 上传包,命令是 npm publish
  • 上传完成后我们就可以在官方仓库中查看我们刚刚写的包了https://www.npmjs.org/

使用

在需要使用的文件夹目录下输入指令npm install iam-sun-iam-moon就可以把需要的npm包下载下来使用了。

创建测试实例,创建test目录,里面创建文件 test.js

test.js

var test = require('iam-sun-iam-moon');
test();

命令行进入test目录,输入命令node test.js,输出There is the iam-sun-iam-moon !

常见问题

  • 更新包的话,修改代码后不能直接发布,这里我们需要修改packageversion号,修改之前先说下npm维护package版本的规则x.y.z

    x: 主版本号,通常有重大改变或者达到里程碑才改变;
    y: 次要版本号,或二级版本号,在保证主体功能基本不变的情况下,如果适当增加了新功能可以更新此版本号;
    z: 尾版本号或者补丁号,一些小范围的修修补补就可以更新补丁号.

     $ npm version patch <=> z++
     $ npm version minor <=> y++ && z=0
     $ npm version major <=> x+= && y=0 && z=0
    

    然后执行npm publish就可以更新到npm

  • 如果在发布中显示类似'请确认你是否有权限更新xxx包'的英文提示,这就说明你的包名有人使用了,应该换一个名字。

  • 删除发布的模块
 $ npm unpublish package@version
 或者
 $ npm unpublish --force package

相关文章

网友评论

    本文标题:如何发布package到npm社区

    本文链接:https://www.haomeiwen.com/subject/afzmdxtx.html