开发一个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