01-npm基本使用

Node.js基础知识

    1.什么是Node.js?
    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.
    Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效
    Node.js平台使用的开发语言是JavaScript,平台提供了操作系统低层的API,方便做服务器端编程,具体包括文件操作、进程操作、通信操作等系统模块
    要开发运行在Node.js平台上的程序,用的也是JavaScript语言进行编程

    2.什么是V8引擎?
    V8引擎是一款专门对JavaScript语言进行解释和执行的流程虚拟机
    例如:
    -把V8引擎嵌入到浏览器中,那么我们写的JavaScript代码就会被浏览器所执行;
    -把V8引擎嵌入到NodeJS环境下,那么我们写的JavaScript代码就会被服务器所执行。
    - V8引擎嵌入到不同的宿主环境中时,可以把JavaScript语言应用到不同的多领域中。

    3.Node.js特点?
    3.1单线程
    3.2非阻塞I/O
    3.2.1传统单线程: 当在访问数据库取得数据的时候,需要一段时间。在传统的单线程处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,极大地降低了程序的执行效率。
    3.2.2Node单线程: Node.js中采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。

    3.3事件驱动
    3.3.1当某个I/O执行完毕时,将以事件的形式通知执行I/O操作的线程,线程执行这个事件的回调函数。为了处理异步I/O,线程必须有事件循环,不断的检查有没有未处理的事件,依次予以处理。
    3.3.2在Node中,在一个时刻,只能执行一个事件回调函数,  但是在执行一个事件回调函数的中途,可以转而处理其他事件,然后返回继续执行原事件的回调函数,这种处理机制,称为“事件环”机制。

    Node.js这样做的优势:
    1.开启线程是非常占用资源的, 为了避免浪费资源, 所以Node不开线程
    2.不开线程就是单线程, 单线程会阻塞, 效率低下(前面的没有执行完, 后面的不能执行)
    3.Node为了解决这个问题, 采用了消息(事件)机制, (前面的阻塞了, 立刻去执行其它的, 前面的回来了, 再继续执行前面的)
    这样做的好处是提升了处理的效率, CPU随时随地都在做事情 ,而不是闲着

    4.Node.js之父
    Ryan Dahl(瑞安·达尔)
    2009年推出Node.js, 2012年退出Node.js, 转战Go语言

    5.Node.js应用场景:
    -网站开发(如express/koa等)
    -im即时聊天(socket.io)
   - api(移动端,pc,h5)
    -HTTP Proxy(淘宝、Qunar、腾讯、百度都有)
    -前端构建工具(grunt/gulp/bower/01webpack/fis3…)
    -跨平台打包工具
        + PC端的electron、nw.js,比如钉钉PC客户端、微信小程序IDE、微信客户端,移动的cordova,Phonegap,一站式开发框架ionic framework
    -写操作系统(NodeOS)
    -命令行工具(比如cordova、shell.js)
    -反向代理(比如anyproxy,node-http-proxy)
    -编辑器Atom、VSCode等
    *** 企业中的应用场景: 中间件

    6.Node.js安装:
    6.1官网下载: https://nodejs.org/zh-cn/
    6.2全程下一步
    6.3node -v

npm命令基本使用

概念
  • 什么是NPM(node.js package management)
    • 类似于QQ管家/360管家
    • 只要安装了Node.js, 就自动包含了NPM包管理工具(node安装目录下的node_modules中)
    • NPM帮助其完成了第三方模块的发布、安装和依赖等。借助NPM,Node与第三方模块之间形成了很好的一个生态系统
    • 官方网站: https://www.npmjs.com/ 管理的包都是从这个网站下载
NPM包安装方式
  • 全局安装 (一般用于安装全局使用的工具, 存储在全局nodejs/node_modules中)
    直接在命令行中打开就是全局
    • 安装命令: npm install -g 包名 (默认安装最新版本)
    • 卸载命令: npm uninstall -g 包名
    • 更新命令: npm update -g 包名 (更新失败可以直接使用install,这个命令使用的不多)
  • 本地安装
    一般用于安装当前项目使用的包, 存储在当前项目node_modules中
    • 安装命令: npm install 包名 (默认安装最新版本)
    • 卸载命令: npm uninstall 包名
    • 更新命令: npm update 包名
NPM初始化本地包
  • 初始化命令: npm init -y 本地生成一个package.json文件(全程自动确认)
NPM局部安装包
  • 1.进入需要安装的目录
  • 2.生成项目的配置文件
npm init -y -->  生成package.json文件
包的描述文件, 定义了这个项目所需要的各种模块, 以及项目的配置信息(项目名称/版本/许可协议...)
    1. 执行命令npm i 包名
两个命令:
npm i 包名 --save
npm i 包名 -s
npm i 包名 --save-dev
npm i 包名 -D

两种安装方式的区别:
npm i 包名 和 npm i 包名 --save是一样的
npm i 包名 --save会将依赖添加到dependencies

npm i 包名 --save-dev
npm i 包名 --save-dev会将依赖添加到devDependencies

dependencies:    生产(部署)环境
devDependencies: 开发(调试)环境
在企业开发中并不是所有安装的包在上线的时候都需要用到, 所以才有了dependencies和devDependencies
那么我们只需要将开发阶段使用的包的依赖添加到devDependencies中, 将部署阶段依赖的包添加到dependencies中, 那么以后就可以很方便的安装相关的依赖

如果想安装部署阶段相关的包, 那么只需要执行
npm i --production 生产部署环境的包
npm i --development 开发环境的包

注意点:
如果利用npm管理代码, 那么在将代码拷贝给别人的时候, 一定不要把node_modules文件夹也拷贝给别人,因为这个文件夹体积比较大, 文件比较零碎, 不利于我们拷贝,别人拿到项目只需要执行npm i就会自动下载相关依赖

nrm基本知识

  • nrm: 是一个管理下载地址镜像的工具, 我们可以通过nrm自有的切换从什么地方下载
  • 如何安装nrm?
    • 通过npm命令:npm i -g nrm
nrm 的相关命令
nrm ls     查看有哪些可以使用的镜像地址
nrm use 镜像地址名称    切换当前使用的地址

注意点:
nrm不具备npm的功能, 它仅仅是用来切换下载地址的

你可能感兴趣的:(01-npm基本使用)