包和npm
包(Package)
-
第三方模块由包组成,可以通过包来对一组具有相互依赖关系的模块进行统一管理。
-
一个包里面拥有很多个模块,这些模块统一的暴露到出口模块(这是对外的接口),我们使用的时候只需要引入出口模块即可
-
包结构
package.json
描述文件(必需)
bin
可执行的二进制文件
lib
js代码
doc
文档
test
单元测试 -
package.json
描述了这个项目所需要的各种模块,以及项目的配置信息(例如名称,版本,许可证等数据)
别人可以根据package.json中的信息找到我们项目中所使用的模块+ -
package-lock.json
缓存每个下载过的包的地址,锁定版本 -
node_modules
文件夹,第三方包的统一管理包项目发给别人的时候 要删除node_modules,因为里面文件太多了,把需要依赖的三方模块在 cnpm install的时候 一定要 --save 保存到依赖 .
别人拿到项目,首先直接 cnpm i (npm i )补齐依赖
npm命令
node package manager
包管理工具,可以获取到别人写好的第三方模块.
世界上目前最大的开发源代码的生态系统
通过npm下载需要的包,这些包可以在https://www.npmjs.com中找到
-
创建
进入项目的顶级目录,执行
npm init
生成package.json文件 -
版本号的说明
“^3.x.x” 锁定大版本,保证包是3.x.x版本,默认最新
“~3.1.x” 锁定小版本
“3.1.1” 锁定完整版本 -
补齐依赖:
npm i 根据package.json中的信息下载项目相关依赖,自行进行下载依赖包 npm ci 根据package-lock.json中的信息下载项目相关依赖,自行进行下载依赖包
-
下载包
npm install moduleName --save
dependencies
npm install moduleName --save-dev
devDependenciesdependencies生产依赖, 生成环境中必不可少的包,例如jQuery,axios;。
devDependencies开发依赖,只在开发时(写代码)需要依赖的库,例如语法检测,压缩代码,扩展css前缀的包
某些包既是开发依赖,又属于生产依赖,例如jQuery
-
nodemon
命令行工具,辅助项目开发,监听nodejs变化 实时更新
npm i nodemon -g
安装
nodemon app.js
使用 -
nrm
npm regitry manager npm下载地址切换工具
npm i nrm -g
安装nrm ls
查询可用的地址列表nrm use taobao
切换npm下载地址为淘宝 -
切换淘宝源
npm config set registry https://registry.npm.taobao.org
yarn config set registry https://registry.npm.taobao.org
yarn 命令
facebook提供的一个非常好用的包管理工具
允许我们从npm服务器上下载别人写号的第三方包到本地使用。
允许用户从npm服务器上下载并安装别人写好的命令行工具到本地使用。
我们也可以编写我们自己的第三方包或者命令行工具上传到npm服务器上供别人使用
npm i yarn -g
安装yarn
yarn add xx
安装包,自动保存到dependencies里面
yarn add xxxx global
全局安装
yarn add xxx@yyy
xxx包的yyy版本
加密_bcrypt:
npm i bcrypt -S
yarn add bcrypt
验证_jwt:
npm install jsonwebtoken
yarn add jsonwebtoken
验证_session:
npm install express-session
yarn add express-session
推送_websocket:
npm i nodejs-websocket
即时更新:
npm i nodemon -g
临时安装:
npm i npx -g
Eslint:
npm i eslint
npm i eslint -g
yarn add eslint
yarn global add eslint
express框架:
npm i express -s
npm install express-generator -g
npm/yarn start //启动express
MongoDB:
npm i mongoose //node连接
yarn add mongoose
npm i admin-mongo //可视化mongo
babel:
npm i babel-core babel-loader babel-plugin-transform-runtime -D
npm i babel-preset-env babel-preset-stage-0 -D