Npm包管理
CommonJS
包规范是理论,NPM (Node Package Manager)
是其中一种实践。对于Node
而言,NPM
帮助其完成了第三方模块的发布、安装和依赖等。借助NPM
,Node
与第三方模块之间形成了很好的一个生态系统。
## 查看版本
• npm –v
## 帮助说明
• npm
## 查看所有模块的版本
• npm version
## 搜索模块包
• npm search 包名
## 下载当前项目所依赖的包
• npm install
## 在当前目录安装包
• npm install 包名
## 全局模式安装包(全局安装的包一般都是一些工具)
• npm install 包名 –g
## 安装包并指定版本
• npm install 包名@1 |-这里会下1.几版本的最新版本,也可以指定详细版本1.2.4....-|
## 安装包并添加到生产依赖中(dependencies)
• npm install 包名 –save 简写:-S
## 安装包并添加到开发依赖中(devDependencies)
• npm install 包名 –save-dev 简写:-D
## 删除一个模块
• npm remove 包名
## 从本地安装
• npm install 文件路径
## 从镜像源安装
• npm install 包名 –registry=地址
## 设置镜像源
• npm config set registry 地址
## 初始化项目
• npm init
## 用户登录 (本机第一次发布包)
• npm adduser
## 用户登录 (非第一次发布项目)
• npm login
## 上传该项目
• npm publish
NPM 包的引入机制
通过npm
下载的包,直接通过包名引入即可。node
在使用模块名称来引入模块时,它会先在当前目录的node_modules中寻找是否含有该模块。如果有则直接使用,如果没有则去上一级目录的node_modules
中寻找,如果有则直接使用,如果没有则再去上一级目录寻找,直到找到磁盘的根目录,如果依然没有,则报错。
NPM 本地仓库地址配置
配置本地仓库地址 在指定目录创建
node_global
和node_cache
运行配置指令
npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"
NPM 基本配置命令
检测本地仓库
npm list -global
配置镜像站
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm config set registry https://registry.npm.taobao.org
npm config set registry http://registry.npmjs.org
查看c盘配置文件仓库地址
C:\Users\Administrator\.npmrc
添加新的环境变量
环境变量NODE_PATH内容是:D:\nodejs\node_global\node_modules
编辑环境变量PATH
D:\nodejs\node_global
package 文件代码解析
{
"scripts":{}, // 包命令
"name": "myName", // 包的名字
"version": "1.x.1", // 包的版本
"description": "description", // 包的描述
"homepage": "www.xxx.com", // 包的官网url
"dependencies": {...}, // 生产依赖环境
"devDependencies": {...}, // 开发s依赖环境
"repository": {...}, // 包代码的Repo信息
"main":"./...", // main 字段指定了程序的主入口文件
"keywords":"xx" // 关键字
}
JS 中引入NPM 包
// node.js语法:require('包名')
var math = require('math')
console.log(math.add(123,456))
// ES6语法:import xxx from '包名'
var xxx from 'math'
开发 npm 命令行工具
# 初始化项目
npm init
# 修改 package.json 中bin字段
"bin": {
"open-dev": "./index.js"
}
# 新建 index.js
#!/usr/bin/env node
console.log('open-dev')
# `#!/usr/bin/env node` 的意思是让系统自己去找node的执行程序,该行必不可少。
# 执行 npm link
npm link
# 运行脚手架工具
git-tool
# index.js 中 process.argv 可用来获取命令行参数
#!/usr/bin/env node
console.log('open-dev')
console.log(process.argv) # ['...', '...', ....]
commander.js 的使用
完整的 node.js (opens new window) 命令行解决方案,可以用于开发脚手架工具的使用。
命令行指令基本使用
#!/usr/bin/env node
const program = require('commander')
// 配置命令
program.option('-d, --debug', '开启调试模式')
// 读取命令行参数
program.parse(process.argv)
// 判断命令行参数
if (program.debug) {
console.log('已开启调试模式....')
}
// 命令行运行 `open-dev -d`
命令行指令携带参数
#!/usr/bin/env node
// 配置命令, 携带值 <type>
program.option('-r, --run <type>', '开启微信开发者工具')
// 读取命令行参数
program.parse(process.argv);
// 判断命令行参数
if (program.run) {
// 读取传入值
const type = program.opts().run
console.log(type)
}
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。