开发一个npm包

在本地开发npm包的时候,咱们能够应用npm link命令,将npm模块链接到对应的运行我的项目中去,不便地对模块进行调试和测试。

创立两个文件夹:

  • npm-link-module, 要开发的npm包
  • npm-link-test,用来测试咱们开发的包

在npm-link-module下执行npm init -y生成一个默认的包配置文件package.json,在目录下新建index.js如下,写个简略的日期转换函数

function formateTime(date) {    let year = date.getFullYear();    let month = date.getMonth() + 1;    let day = date.getDay();    month = month < 10 ? '0' + month : month;    day = day < 10 ? '0' + day : day;    return year + '-' + month + '-' + day;}module.exports = formateTime

而后执行npm link, 执行命令后,npm-link-module会依据package.json上的配置,被链接到全局,门路是{prefix}/lib/node_modules/<package>,这是官网文档上的形容,咱们能够应用npm config get prefix命令获取到prefix的值,找到对应的的文件夹,能够看到曾经在这个目录上面生成了一个npm-link-module的快捷方式

再进入npm-link-test,执行npm init -y生成包文件,接着执行npm link npm-link-module 能够看到在这个我的项目的node_modules目录下生产了一个npm-link-module的快捷方式

当初npm-link-test这个我的项目就能够援用这个npm-link-module这个模块了

咱们在npm-link-test的目录下新建index.js文件,内容如下

let formateTime = require('npm-link-module');let date = new Date();console.log(formateTime(date));

而后执行node index.js,能够看到命令行曾经打印出函数的执行后果了

而后,咱们批改下npm-link-module中的index.js文件的日期函数,返回后果就批改成返回斜线格局的日期

return year + '/' + month + '/' + day;


再回到npm-link-test目录下执行index.js,能够看到,返回后果曾经变成了斜线的日期

由此可见,所有对npm-link-module的批改会被间接映射到npm-link-test/node_modules/npm-link-module

npm包公布

注册

先去官网注册一个账号,留神:注册的邮箱必须要验证。
或着本地注册:

npm adduserUsername:Password:Email:

登录

注册胜利了,通过上面的命令验证

npm whoami //验证你的凭据已存储在客户端,注册胜利了就会显示你的用户名

如果曾经有了账号,间接应用npm login本地登录。


依据提醒输出之前注册的账号、明码。

公布包

公布npm包:npn publish

npm publish --access=public //如果是公开包这样公布,如果不是公开的包则去掉--access=public即可

更新包

npm version major/minor/patch // 此命令会自主动批改你的版本号,也能够手动批改,不必执行此命令npm publish


npm version前面参数阐明:

  • patch:小变动,比方修复bug等,版本号变动 v1.0.0->v1.0.1
  • minor:减少新性能,不影响现有性能,版本号变动 v1.0.0->v1.1.0
  • major:毁坏模块对向后的兼容性,版本号变动 v1.0.0->v2.0.0

删除包

1、删除指定的版本

npm unpublish 包名@版本号

2、删除整个包

npm unpublish 包名 --force