在 NPMJS 上发布并维护包

做 nodejs 的开发基本都会用到 npm 都包,那么如何在 npmjs 上发布并维护一个包呢?

准备条件

步骤

  • 编写包

    一个包应该至少包含三个文件,package.json,readme.md 和代码文件。虽然 readme.md 文件是非必需的,但一个清晰的文档文件能节省使用者很多事情,建议每一个发包者都应该写好 readme.md 文件。

    • readme.md 文件:主要是关于这个包的说明及用法

    • package.json 文件:通过 npm init 初始化得到,里面包含了一些必要的信息,得到的结构如下

    {
      "name": "npmdemo",
      "version": "0.0.1",
      "description": "npmdemo",
      "main": "app.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [
        "npm",
        "demo"
      ],
      "author": "tourcoder",
      "license": "ISC"
    }
    
    • 代码文件,比如这里的 demo 代码如下,app.js
    exports.hello = function hello(name){
      console.log("hello "+ name);
    }
    
  • 发布包

    • 增加用户

      执行命令 npm adduser,这时候会要求输入用户名密码等信息,将之前在 NPMJS 上注册的信息填写进去,完成后得到如下信息

      Username: tourcoder
      Password:
      Email: (this IS public) [email protected]
      Enter one-time password from your authenticator app: 123123
      Logged in as tourcoder on https://registry.npmjs.org/.
      

      如果在 NPMJS 上面的账户开启了二次认证,会像上面第四行的信息一样出现要求输入二次验证的内容。

    • 发布

      在终端中直接输入 npm publish 等待校验后,会发布到 NPMJS 上,发布成功的形式如下

      npm notice
      npm notice 📦  [email protected]
      npm notice === Tarball Contents ===
      npm notice 260B package.json
      npm notice 70B  app.js
      npm notice === Tarball Details ===
      npm notice name:          npmdemo
      npm notice version:       0.0.1
      npm notice package size:  400 B
      npm notice unpacked size: 369 B
      npm notice shasum:        
      npm notice integrity:     
      npm notice total files:   2
      let sayhello=require('npmdemo');
      npm notice
      + [email protected]
      

      包的名字有时候是 @orgname/packagename,需要缴费开启私有包库,如果不想付费是公开的包,则执行 npm publish --access public 来发布。

  • 更新包

    在 NPMJS 是没有更新概念的,它的更新就是发布一个更新的版本,比如更改了上面包的代码,再次使用前面的发布流程再次发布一次即可。

    需要特别注意:需要把 package.json 中的版本号更改下,这样就说明已经更新了该包。

  • 删除包

    NPMJS 似乎是不能够删除包的,而且根据包发布的时间长短,取消已经发布的包的方式也不一样,具体看这里的官方说明

  • 如何使用包

    npm install 包名
    

    具体看包的使用说明即可,这时可以看出 readme.md 文件的重要了。

相关内容

除了 NPM 之外,facebook 出了一个 yarn,官方网站为 https://yarnpkg.com

它的建包发包过程可以看这里

也是发布在 NPMJS 上的哦。


> 可在 Twitter/X 上评论该篇文章或在下面留言(需要有 GitHub 账号)