logo科技微讯

看源码:bower-name-cli

作者:科技微讯
日期:2023-05-30
📝 笔记

bower-name-cli 是一个 cli 工具,用来查询 bower 中是否存在某个 package name。

bower 曾经是一个很热门的前端 package manager,npm 曾经主要用于后端包管理,不过 2016 年中 bower 开发者就开始 deprecate bower 了,建议开发者使用 npm、yarn 等工具。

依赖:

{
  "dependencies": {
    "bower-name": "^2.0.0",
    "log-symbols": "^1.0.2",
    "meow": "^3.4.2"
  },
  "devDependencies": {
    "ava": "*",
    "pify": "^2.2.0",
    "xo": "*"
  }
}

bower-name-cli 其实是 bower-name 的 cli 版。

执行文件 cli.js 顶部有一行 shebang

#!/usr/bin/env node

/usr/bin/env 是一个程序,在这里它接收一个 node 参数,程序会从 $PATH 中寻找 node 的路经,于是在终端运行这个文件时,可以直接输入 ./cli.js 执行,不需要 node ./cli.js

test.js 可以看到如何在 node.js 代码中执行一个 js 文件:用的是 child_process.execFile(),因为 cli.js 加了 shebang,所以可以直接把这个文件的路径传入 execFile() 去执行。

cli 工具的 package.json 都有一个 bin 字段,bower-name-cli 也不例外

bower-namebower-name-cli 的基础,它其实只是向 bower 的 API 发起一个请求,确定是否存在某个 package。请求方法是 HEAD,它只会返回 headers,不会返回 bodybower-name 根据 status code 来判断是否存在某个 package,它不关注 body,所以不需要用 GET,而且 HEAD 通常比 GET 更快。


相关文章:

donation赞赏
thumbsup0
thumbsdown0
暂无评论