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