npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zt-my-cli

v0.0.3

Published

## 使用 1. npm i zt-my-cli 2. my-cli init 或者 my-cli create 3. my-cli -V my-cli -h

Downloads

2

Readme

介绍

项目地址

使用

  1. npm i zt-my-cli
  2. my-cli init 或者 my-cli create
  3. my-cli -V my-cli -h

知识点

这是一个可以像vue-cli一样一键拷贝模版项目的项目

package.json文件配置如下

  {
    //在 npm 中,@ 符号用于指定包的作用域。一个 npm 包的名称通常由包名和作用域组成。
    //例如,假设你希望创建一个名为 foo 的包,并将其发布到一个名为 my-scope 的作用域下,那么这个包的完整名称就应该是 @my-scope/foo。
    "name": "zt-my-cli", 

    "version": "1.0.2",
    "description": "",

    //"main": "index.js" 表示在 require() 或 import 该包时会优先加载 index.js 文件作为入口文件。也就是说,当你的项目依赖这个包,使用 require('zt-my-cli') 或 import 'zt-my-cli' 的方式时,它会默认加载 index.js 文件并执行其中的代码。
    //注意:如果你的包中存在其他的入口文件,那么你可以在 package.json 中添加 "exports" 字段来指定不同的入口文件,或者使用 import 'zt-my-cli/other-index' 这样的语法来引用不同的入口文件。
    "main": "index.js", 

    //"bin" 字段,它用于指定一些命令行工具的入口文件
    //当你在终端中输入 my-cli 时,它实际上会执行 node ./bin/index.mjs 
    //在 Node.js 中,可以通过指定文件扩展名为 .mjs 来将一个文件标记为 ECMAScript 模块,即用ECMAScript的import 和 export,而不是 CommonJS 规范中的 require 和 module.exports
    "bin": {
      "my-cli": "./bin/index.mjs"
    },
    "scripts": {
      "lint": "echo \"Error: no lint specified\" && exit 0",
      "test": "echo \"Error: no test specified\" && exit 0"
    },
    "keywords": [],
    "author": "zt",
    "license": "ISC",
    "dependencies": {
      //用于在终端中添加带颜色的输出
      "chalk": "4.0.0",
      //用于处理命令行参数
      "commander": "10.0.0",
      //用于从 .env 文件中加载环境变量
      "dotenv": "^16.1.4",
      //用于从 Git 仓库中下载代码
      "download-git-repo": "3.0.2",
      //用于提供更强大的文件系统操作功能
      "fs-extra": "11.1.0",
      //用于渲染模板
      "handlebars": "^4.7.7",
      //用于创建交互式命令行界面
      "inquirer": "8.0.0",
      //用于显示进度条和等待动画
      "ora": "6.1.2"
    }
  }

关于 #! /usr/bin/env node #!/usr/local/bin/bash 这种注释

在 Unix 系统中,路径以 #! 开头的注释(也称为 shebang)被视为特殊的指令,这个指令告诉操作系统怎样去运行这个脚本。 当你运行一个包含上述 shebang 的脚本时,Unix 系统会读取这个注释,然后使用指定的解释器来执行这个脚本。这样可以确保脚本在不同的系统上都能够正确地运行,而不用担心系统中默认的 shell 解释器是否与脚本兼容。

  • #! /usr/bin/env node,它指定了当前脚本文件使用 /usr/bin/env 工具来查找 node 的可执行文件,并将该文件作为解释器来解析当前脚本文件。因此,这个声明的作用就是告诉操作系统要使用 Node.js 解释器来执行当前文件。 当我们在终端中输入 ./filename.js 来执行一个 Node.js 脚本时,实际上操作系统会首先检查该文件的 shebang 声明。如果存在以 #! 开头的声明语句,那么操作系统会将该声明语句及其后面的命令作为一个整体来执行,并将当前文件作为输入传递给该命令进行解释和执行。这个过程称为“shebang 处理”。 因此,在 #!/usr/bin/env node 声明存在的情况下,我们可以直接在终端中运行 ./filename.js 命令来执行当前 Node.js 脚本,而不需要显式地指定 node 命令来解释执行该文件。 也可以当前文件不指定shebang,直接显式执行需要node 执行
  "bin": {
    "my-cli": "node ./bin/index.mjs"
  },
  • env 是一个 Unix/Linux 系统下的命令行工具,用于在当前环境中执行一个命令。它可以用来设置临时环境变量、修改当前工作目录、指定语言等操作。 //env 命令的常见用法如下: //设置临时环境变量: env VAR_NAME=VAR_VALUE command 其中 VAR_NAME 是环境变量名,VAR_VALUE 是环境变量值,command 是要执行的命令。

  • #!/usr/local/bin/bash ,它告诉 Unix 系统该脚本使用 Bash 解释器来运行。这个注释中的路径 /usr/local/bin/bash 表示 Bash 解释器的安装位置,可以根据实际情况进行修改(which bash => /bin/bash)

部署

npm publish --registry=https://registry.npmjs.org --access=public

调试

包的调试可以通过本地npm link 解除link: npm unlink zt-my-cli