开发一个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,可以看到命令行已经打印出函数的执行结果了
image.png
然后,我们修改下npm-link-module中的index.js文件的日期函数,返回结果就修改成返回斜线格式的日期

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


再回到npm-link-test目录下执行index.js,可以看到,返回结果已经变成了斜线的日期
image.png
由此可见,所有对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

白哥学前端
1 声望0 粉丝