# myNpmCommand **Repository Path**: AlexAnde/my-npm-command ## Basic Information - **Project Name**: myNpmCommand - **Description**: 创建一个自己的whoami命令,并发布到Npm上 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-15 - **Last Updated**: 2021-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # alex-whoami whoami命令的复刻 主要为了熟悉npm命令的发布方式 ## 注册npm账号 到npm官网注册好账号 然后本地使用命令登录账号 ```zsh npm adduse # 执行后会让输入用户名、密码、邮箱 ``` ## 创建仓库 ```zsh mkdir xxx #随便创建一个目录 cd xxx #进入目录 npm init # 初始化仓库,会让填一些信息(npm包的名称,作者,balabala),直接一路回车,然后生成package.json文件。 ``` ## package.json文件 该文件中比较重要的属性 * `name` : 默认是项目的目录名称。 仓库的名称。通过npm命令安装的时候就要用这个名称。 * `main` : 默认是index.js。 该文件内通过`module.exports`暴露内容。其他项目require本项目后,就能使用exports的内容。 * `bin` : 默认没有 ```json "bin": { "command-name": "./file.js" } ``` 配置包提供的命令的名称为command-name,调用命令时执行的代码就是file.js P.S. file.js 一定要以`#!/usr/bin/env node`为首行 ## 编写代码 目标是实现命令,所以可以不管`main`。完成`bin`即可 ```javascript #!/usr/bin/env node //需要先npm i os const os = require('os') function main() { console.log(os.userInfo().username) // 通过os库,获取用户名 } main(); ``` ## 发布代码 ```zsh # 在项目的根目录下调用 # 如果发布过了需要更新package.json中的版本号发新版 npm publish ``` ## 使用 ```zsh # 安装本地npm仓库,方便测试。 npm i -g ./xxx # 安装发布的npm仓库 npm i -g # 根据自己的command-name调用命令 command-name ```