目录
包简介(package)
包结构
NPM(Node Package Manager)
NPM常见命令
//帮助说明
$ npm
//查看版本
$ npm -v
//搜索模块包
$ npm search 包名(关键字)
// 初始化项目文件夹,会在当前文件夹中创建一个package.json文件
$ npm init
全局安装package
//全局模式安装
$ npm install (i) 包名 --global (-g)
//从全局中卸载
$ npm uninstall 包名 --global
全局安装包的目录
- Mac
/Users/felix/.nvm/versions/node/nvm各个版本/bin/
- Windows
C:\Users\你的用户名\AppData\Roaming\npm\node_modules
本地安装package
// 在当前目录安装包
$ npm install (i)包名
// 安装包并将该包添加到生产环境依赖当中(dependencies)
$ npm install (i)包名 --save(-S)
// 安装包并将该包添加到开发环境依赖当中(devDependencies)
$ npm install (i)包名 --dev(-D)
// 只安装生产环境依赖的包
$ npm install (i) --production
//卸载包
$ npm uninstall/remove(r) 包名
安装指定版本package
// 查看当前项目的所有安装的包、依赖、版本号
npm list(ls)
// 查看包的所有版本
$ npm view 包名 versions
// 安装指定版本的包
$ npm install (i) jquery@2.1.1(包名@版本号)
更新本地安装的包
// 查看那些包需要更新(如果输入没有显示,则代表当前包全部是最新版本)
$ npm outdated
// 更新包版本为依赖中设置的版本,会根据npm版本符号更新
$ npm update
清除缓存
// 清除缓存包文件夹
$ npm cache clean --force
配置cnpm
$ npm install -g cnpm --registry=http://registry.npm.taobao.rog
模块化
模块/包分类
内置的模块
const path = require('path')
var extname = path.extname('index.html')
console.log(extname)//.html
第三方的Node.js模块
npm install chalk
const chalk = require('chalk')
console.log(chalk.blue('Hello world!'))
自定义的Node.js模块
模块定义、接口暴露和引用接口
const name = 'gp19'
const sayName = () => {
console.log(name)
}
console.log('module 1')
// 接口暴露方法一:
module.exports = {
say: sayName
}
// 接口暴露方法二:
exports.say = sayName
// 错误!
exports = {
say: sayName
}
var md = require('./index')
md.say();
Node.js执行模块代码的流程
const str = 'Hi!';
exports = str;
console.log("我是exports:",exports);
console.log("我是require:",require);
console.log("我是module:",module);
console.log("我是__filename:",__filename);
console.log("我是__dirname:",__dirname);