Using an simple example to learn how to publish a package to NPM
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
node_modules/say-hello-world
README.md
hello-world.js

README.md

发布一个say-hello-world的package到npm; 这个package的功能是提供一个sayHelloWorld的方法。

注意:因为say-hello-world package已经发布到npm了,所以大家在跟随文档操作的时候需要换个名字。

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

  • 第二步: 在node_modules目录下名字say-hello-world目录;

  • 第三步: say-hello-world目录下新建两个文件:

    • index.js function sayHelloWorld() { console.log("Hello world !"); } module.exports = sayHelloWorld;

    • package.json { "name": "say-hello-world", // package的名称 "author": "yourname me@hello.com (http://hello.com)", // 作者的相关信息 "version": "0.0.1", // 版本号(semantic version) "main": "index" // 入口文件,当在其他文件中require('say-hello-world')时,将会加载index.js }

    • 发布say-hello-world包到npm
      • 首先要注册一个npm账号(如果没有的话)
      • 注册完后,在命令窗口运行npm adduser(登陆npm),会提示你输入用户名和密码;
      • 登陆成功后,在say-hello-world目录下执行命令npm publish(发布package)
      • 发布成功后就可以登陆到npm官网去看自己发布的package。

到这里,我们已经成功发布了say-hello-world包到npm,接下来我们来尝试使用一下say-hello-world包

  1. 先新建一个空的目录test;然后在命令行中切换到test目录;
  2. 然后执行npm install say-hello-world命令;
  3. 执行成功后在test目录下看到多了一个node_modules的目录,在node_modules目录中就可以看到我们刚才发布的say-hello-worldpackage;
  4. 然后再test目录下新建一个hello-world.js来测试一下sayHelloWorld()方法,hello-world.js中的内容如下: var sayHelloWorld = require('say-hello-world'); sayHelloWorld();
  5. 在命令行中进入test目录,然后执行node hello-world.js,就会在看到输出:Hello world !.

如何更新发布到npm的package?(以刚才发布的say-hello-world为例)

当我们对say-hello-world做了改动就需要更新到npm.

  • 进入到say-hello-world目录, 对index.js做一些修改(做为要更新的内容)
  • 然后再命令行执行npm version patch, 此命令会把package.jsonversion更新到0.02
  • 然后执行npm publish就可以更新到npm了