手写一个命令行工具到npm发布包

在学习这篇教程之前,你需要先了解NodeJs,NPM和一些常用的shell命令!

从零开始创建一个命令行工具

1.创建一个项目

$ mkdir my-cli
$ cd my-cli
$ npm init

通过上面的步骤,创建了我们的项目my-cli,并且初始化了package.json文件

{
  "name": "my-cli",
  "version": "0.0.1",
  "description": "cli demo",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "license": "ISC",
}

2.新建一个可执行文件

在my-cli文件下创建bin/index.js文件,在js文件的头部加上一行代码使其成为一个可执行文件

#!/usr/bin/env node

console.log("hello word!")

3.指定bin/index.js为执行文件

修改package.json的bin字段

{
  "bin": {
    "my-cli": "bin/index.js"
  }
}

4.本地调试cli包 :npm link 命令

我们在项目根目录下执行npm link命令后,就可以全局使用my-cli命令了。
测试一下:

$ my-cli

Hello world!

5.发布为npm包

1)去npm官网注册一个账号,然后去邮箱验证通过
2)输入命令npm addusernpm login按照提示输入账号密码 ( 注:输入密码时不会显示出来)
3)在项目根目录输入命令npm publish ,成功后再你的npm网站就能看到这个package

npm publish 发布报错,可能有一下两个原因:
  • 仓库被设成了淘宝镜像库 ,改回npm set registry "https://registry.npmjs.org/"

    image.png

  • 意思是你没有发布这个包的权限,确认你登录的是这个包的用户,也就是说包名重复了,修改package.json文件中的name


    image.png

6. 退出登录 npm logout

7. 删除包

npm unpublish [<@scope>/]<pkg>@<version>
npm unpublish [<@scope>/]<pkg> --force
示例:

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容