一、相关 package.json 介绍
{
"name": "xxx", //项目名称
"version": "0.1.0", //版本
"main": "index.js", // 入口文件
"description": "npm demo", //项目描述
"license": "GPL-3.0", //开源许可
"author": { //作者信息
"name": "wwwmewww" //名字
},
"keywords": [ //关键字,便于在 npm 上搜索到
"js",
],
"repository": { //仓库地址,本人仓库啥也没有
"type": "git",
"url": "git+https://github.com/wwwmewww/xxx.git"
},
"bugs": { //bug提交地址
"url": "https://github.com/wwwmewww/xxx/issues"
},
"homepage": "https://github.com/wwwmewww/xxx#readme", //主页
}
编写在文件中引用的包
- 包的入口文件
//index.js module.exports = function(){ console.log('hello'); }
- 配置 package.json
//package.json { "main": "index.js", // 配置好入口文件 }
- 引用并执行包
const mypack = require('mypack'); mypack(); //执行包,输出:hello
编写能用命令行执行的包
- 包的入口文件 index.js
#!/usr/bin/env node console.log('hello world')
- 配置 package.json
{ "bin": { "my-cli": "./index.js" } }
- 用 npm link 测试
如果执行 npm link 报错,可以把 npm_global 目录下的相关的文件都删掉再试$ npm link #成功之后就可以执行 my-cli 命令 $ my-cli #运行 就能看见 hello world 输出
3. 推荐包
包名 | 说明 |
---|---|
commander | 处理命令行参数 |
inquirer | 处理命令行交互 |
chalk | 改变命令行输出颜色 |
cross-spawn | Node.js 的子进程(child_process)模块下有一 spawn 函数的跨平台写法 |
envinfo | 输出环境信息 |
fs-extra | fs的扩展库 |
hyperquest | 将http请求转化为流输出 |
semver | 版本格式化和计算的库 |
tar-pack | 压缩和解压 |
tmp | 用户临时文件资源的管理,可用 tmp-promise 代替 |
validate-npm-package-name | 检查package的name是否合法 |