文章目录
一、安装 node
- 在nodejs官网下载,安装到 E:\nodejs\
- 在安装目录下新建“npm_cache”,“npm_global”两个文件夹
- 修改npm配置到新建的两个文件夹,在控制台下运行
$ npm config set prefix E:\nodejs\npm_global $ npm config set cache E:\nodejs\npm_cache
- 设置环境变量
- 新建 NODE_HOME 环境变量,值为安装目录 E:\nodejs
- 在 path 下新增 %NODE_HOME%;%NODE_HOME%\npm_global
- 安装 npm 镜像管理包 nrm
$ npm config set registry https://registry.npm.taobao.org #直接设置淘宝镜像 $ npm i -g nrm #安装 nrm $ nrm use npm #切换回 npm 官方镜像,用于上传自己开发的包 $ nrm use taobao #切换到 淘宝镜像 用于安装包用,超快
- 安装 node 版本管理包 nvm, 点击下载nvm,安装既可,有需要的安装。
- 查看 全局安装过的包
$ npm ls -g --depth 0 #去掉 -g 查看当前目录安装过的包,参数 depth 为查看深度
二、创建 node 开发环境
- 初始化
$ mkdir node_demo #新建文件夹 $ cd node_demo #进入文件夹 $ npm init -y #初始化,并生成package.json 文件
- 安装包
$ npm i -g xxx #全局安装,i 为 install 缩写 $ npm i -D xxx #当前目录,开发环境安装,最新为 --save-dev $ npm i -S xxx #当前目录,上线环境安装,最新为 --save-prod $ npm i #当前目录,安装 package.json 中的所有包 $ npm i --prod #当前目录,只安装 package.json 中上线环境的包
三、发布 npm 包
1. npm 包发布命令
- 去npm网站注册账户。也可以在命令行注册。注意:必须在官方镜像上操作
$ npm adduser #注册帐号,如有账户略过 $ Username: #输入用户名 $ Password: #输入密码 $ Email: (this IS public) #输入公开的电子邮箱
- 登录 npm 账户,必须在官方镜像上操作
$ npm login #登录账户 $ Username: #输入用户名 $ Password: #输入密码 $ Email: (this IS public) #输入电子邮箱
- 发布,必须在官方镜像上操作
$ npm publish
- 撤回发布,好像只能撤回24小时之内发布的包
$ npm unpublish #撤回发布 $ npm unpublish --force #强制撤回
2. npm 包发布流程
相关 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是否合法 |