node学习

1、node是什么?

官方解释:node.js is a JavaScript runtime built on chrome's V8 JavaScript engine

JavaScript-提供灵活的语法

V8-为JavaScript运行提供足够高的效率和实现

编译语言的运行环境(编译器+操作系统的底层支持)

node=c++代码编写+ECMAScript语法规范

个人理解:JavaScript可以在后端运行的一个环境

2、node内部机制?

node中的IO:node程序在Libuv支持下与系统磁盘和网络交互的过程

node没有提供多线程的支持,用户编写的代码只能运行在当前线程中

开发者无法在一个独立进程中添加新的线程,但是可以派生出多个进程来达到并行完成工作的目的

node中的并发:node虽然运行在单线程中,但任然支持高并发,就是依靠事件循环实现的

3、npm理解

npm其实是Node.js的包管理工具(package manager)

为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。

一、包管理工具是什么

1、定义:就是将别人写好的很多js代码放在一起(粗略的理解),然后对其进行管理

这里所谓的包指的就是各种插件(例如:jquery/Vue……)

2、包管理工具的好处:

1、复用别人已经写好的代码

你不会为每个项目都写一个 jQuery、React 这样的东西,而是直接使用别人已经写好的。

传统做法是:去官方网站下载对应的 js 文件,然后放到自己项目的对应路径下,比如 /assets/js/ 。

而现在有了 npm 和 yarn 这样的东西,99.9999 % 的开放获取的包都在一个集中存放的地方,方便了查找和下载。

2、管理包之前的依赖关系

因为大家写的包都放在这里了。

如果我要写一个新的包,里面的一个小程序正好是别人已经写好的,所以我就拿来用了。

这样就是我的包对别人的包有了依赖关系。

一个大型的库(包)这个依赖关系可能很复杂,

比如:依赖于几十个别的包,

同时,每个包都要求对应一个确定的版本(因为版本相差太大,可能会有API不兼容的情况)。

这样,如果人工去下载每一个依赖的包,将是一个指数级的任务:

A 包依赖于 B 和 C,同时 C 依赖于 D 和 E,B 又依赖于 F、G、H,D 又依赖于 I、J、K…

如此,基本是人类无法完成的任务。

当然,在没有包管理器之前,也没有人写包会依赖于这么多其它人的包,结果当然就是重复劳动:每个包都把一些常用的功能自己实现一遍。

二、npm是什么

npm全称Node Package Manager,他是node包管理和分发工具

Node.js 自带了软件包管理器 npm

1、是javascript的包管理工具

2、是nodejs官方的一种包管理工具

简单点来说,就是开发人员通过cmd命令符下载各种包版本的工具

三、npm安装:

 1、安装出现的问题:由于npm的软件源地址在国外,所以会出现速度慢很多包安装不上时候

 2、安装需要的条件:想要安装npm就得需要先安装好nodejs,nodejs是基于C++编写的JavaScript引擎

 3、安装分类:npm安装:分为本地安装和全局安装,

(1)本地安装后你可以在的程序中用require('package')访问,

(2)全局安装通常是用于命令行工具,例如构建工具grunt CLI.

 

posted on 2018-08-28 19:13  木之子梦之蝶  阅读(109)  评论(0编辑  收藏  举报

导航