NPM 制作命令行工具 - 入门案例

简介: NPM 制作命令行工具 - 入门案例

一、简介

  • 经常通过 npm 安装 vue-clicreate-react-app 之类的命令行工具,那么如何简单的制作一个命令行工具呢?只需要几步即可!

二、制作

  • 创建 npm 命令行工具文件夹(例如:dzm-cli
  • 初始化 dzm-cli,得到 package.json 配置文件。
$ npm init -y
{
  "name": "dzm-cli",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
  • 根目录新建 index.js,添加测试代码
#!/usr/bin/env node
// 输出命令带的参数
console.log(process.argv)
  • 可以本地测试执行下 index.js
$ node index.js
# 输出
[
  '/Users/xxx/.nvm/versions/node/v16.20.0/bin/node',
  '/Users/xxx/Desktop/Project/dzm-cli/index.js'
]
$ node index.js 参数1 参数2 参数3 ....
# 输出
[
  '/Users/xxx/.nvm/versions/node/v16.20.0/bin/node',
  '/Users/xxx/Desktop/Project/dzm-cli/index.js'
  '参数1',
  '参数2',
  '参数3'
]
  • 然后在 package.json 中添加 bin 字段
    bin 字段的 key 就是命令(例如:vue-clicreate-react-app
    value 指向该命令对应的脚本路径(例如:index.js
    不同的 key 对应不同的命令跟处理脚本
    这里指定一个 dzm-cli 命令,并指定刚新建的 index.js 最为处理脚本,然后对 package.json 可以进行简化下,需要什么其他配置字段可以自己加:
{
  "name": "dzm-cli",
  "version": "1.0.0",
  "description": "",
  "bin": {
    "dzm-cli": "index.js"
  }
}

三、本地测试与发包

  • 先本地测试一下,在 package.json 目录通过创建本地软链进行测试
# 创建测试链接
$ npm link
# 移除测试链接
$ npm unlink dzm-cli
  • 执行后 npm 本地就会通过项目中 package.jsonbin 字段创建对应的命令可执行文件,然后就可以直接使用命令测试了。
$ dzm-cli
$ dzm-cli 参数1 参数2 参数3
  • 测试没有问题后,可以通过 $ npm publish 发包了!注意:发包时必须保证 npm 源为官方源,不能是第三方源,要不然会发包失败!没有 npm 账号的自行官网注册一个。(附:NPM 上传发布详细流程

三、使用

  • 发包成功后,项目中安装测试一下
$ npm i -g dzm-cli
  • 项目中使用
$ dzm-cli
# 输出
[
  '/Users/xxx/.nvm/versions/node/v16.20.0/bin/node',
  '/Users/xxx/Desktop/Project/dzm-cli/index.js'
]
$ dzm-cli 参数1 参数2 参数3
# 输出
[
  '/Users/xxx/.nvm/versions/node/v16.20.0/bin/node',
  '/Users/xxx/Desktop/Project/dzm-cli/index.js'
  '参数1',
  '参数2',
  '参数3'
]
  • 然后就可以通过判断参数进行处理了,也可以使用相应的插件库更好的对命令进行处理!
相关文章
|
6月前
|
JavaScript 前端开发 开发者
npm入门介绍
npm install [包名] - 这是最常用的npm命令,用于安装一个或多个包。如果后面没有指定包名,则根据当前目录下的package.json文件安装所有依赖。 npm uninstall [包名] - 用于卸载已安装的包。 npm update [包名] - 更新一个或多个包到最新版本。 npm init - 通过问答的方式帮助你创建一个新的package.json文件,这是开始一个新项目的第一步。 npm run [脚本命令] - 运行package.json中定义的脚本命令。 npm publish - 如果你开发了自己的npm包,这个命令可以帮助你将包发布到npm仓库,
45 3
NPM 制作命令行工具 - 入门案例
NPM 制作命令行工具 - 入门案例
72 0
|
JSON JavaScript 前端开发
NPM 入门使用2
NPM 入门使用2
96 0
|
JSON JavaScript 开发工具
NPM 入门使用1
NPM 入门使用
149 0
|
JavaScript 前端开发
|
资源调度 应用服务中间件 Linux
npm私服安装教程 - verdaccio 入门
笔者安装的是 verdaccio@3.2.0,需要 node > 6.12.0, npm >=3.x 我们使用 pm2 来管理进程,需要全局安装 pm2
506 0
|
6月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
354 3
|
2月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
65 0
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
该博客文章提供了解决在使用npm版本7.19.1时出现的"no such file or directory"错误的具体方法,建议通过降级npm到6.14.8版本来解决问题,并确认了该方法可以成功安装node_modules。
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
|
4月前
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】

推荐镜像

更多
下一篇
DataWorks