npm包发布和管理实战
发布于 8 年前 作者 zp1112 11000 次浏览 来自 分享

学会如何发布自己的npm包

以封装一个cnode社区开放接口sdk为例,发布该npm包给nodejs开发者使用。 项目github地址 npm包ccnode地址

package.json

sdk模块的具体封装过程就不写了,写好模块以后,注意配置好package.json文件,具体如下。

{
  "name": "yourpkgname",
  "version": "0.1.0",
  "description": "description",
  "main": "dist/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "compile": "./node_modules/.bin/babel src --out-dir dist", // 将源码编译到dist文件夹,入口文件也要改成dist/index.js
    "prepublish": "npm run compile" // npm publish之前会prepublish
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/authorname/reponame.git"
  },
  "bugs": {
    "url": "https://github.com/authorname/reponame/issues"
  },
  "homepage": "https://github.com/authorname/reponame#readme",
  "author": "authorname",
  "license": "MIT",
  "devDependencies": {
    // 你的依赖
  },
  "dependencies": {
    // 你的依赖
  }
}

注册npmjs用户

首先,到https://www.npmjs.com上面注册一个用户。 然后就可以在本地添加用户:

npm adduser
username:
password:
email:

查看用户:

npm whoami

然后就可以在项目文件下,本地执行 npm publish, npm会根据package.json里面的version来发布包版本,如果出现如下提示表示发布成功,发布npm包成功后,你就可以在https://npmjs/packages/yourpkgname上面看到你刚发布的包。

+ yourpkgname@0.1.0

如果需要删除包,执行 npm unpublish --force,npm会根据package.json的version删除该version的包版本。

- yourpkgname@0.1.0

如果需要更新包,需要先更新package.json的version,但是不需要手动更新,只需执行npm version <update_tye>, update_type 可以取三个值:major minor patch,其中 1 是主要版本,只有重大的更新才会修改它的值(major),第二个位置是次要的(minor),第三个位置是补丁(patch),根据包修改的程度来定你要修改那个位置的数字,比如:

npm version patch
v@0.1.1

然后更新package.json的version,再执行 npm publish, 会根据该version进行发布。出现如下提示表示发布成功。

+ yourpkgname@0.1.1

使用该npm包

在新的项目里面npm i --save yourpkgname,就可以愉快的使用了。

注:

更多的关于npm包管理的知识还需要深入学习,目前暂时了解了基础的npm包发布流程和方法。

5 回复

很不错的,都用到npm version patch,文中最佳实践还少一点,发包的时候只能是npmjs的源,所以https://github.com/sindresorhus/np

@i5ting 谢谢你,你的鼓励是我学习的动力^_^

话说我们团队缺女工程师,有没有兴趣来深圳?

@alsotang 然而我资历还不够呢,等我修炼好^_^

@zp1112 够的够的,看你想不想来而已~

回到顶部