node.js的一些小常识和npm的常用指令~

923 阅读7分钟

前言:这篇文章就是把npm几个简单的指令拿来说下,然后是有从很浅层次来聊下node.js,想直接看npm常见指令的小伙伴直接往下拉哦。欢迎各位大佬的补充和指点~👊👊👊

ec4952d7553f657ecb8d9657d61e16e.jpg

node.js的小常识

一般我学东西呢,会从三点出发。是什么? 怎么用? 解决了什么问题?那我们也从这三个大方向来从简单聊下node.js吧⚽

node.js是什么?

node.js是一个js运行环境,借助各种模块,它可以读写文件,处理路径等。Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.Node.js是一个基于 Chrome V8 引擎的JavaScript运行环境。

这段话是官网node.js中文网抄的,然后让我们来解读一下~

简单来讲:node.js就是一个运行环境,Node.js 为 JavaScript 代码的正常运行,提供的必要的环境。(运行环境:就是指代码正常运行所需要的必要条件)

有个注意点哦:node运行环境里面没有DOM和BOM的概念

那么基于谷歌浏览器(chrome) v8 引擎的js运行环境是什么意思呢? 那我这边大家聊下前端和后端了,我们前端后端的代码最终都是放在服务器上,但是文件执行的位置各有不同。

前端(frontEnd):代码放在服务器端,但是执行是在客户端

后端(backEnd): 代码放在服务器端,执行是在服务器端

大家都知道前端代码能在浏览器运行,是因为有浏览器内核的缘故。浏览器内核又分为渲染引擎和解析引擎。也就是说我们前端的js代码必须依靠解析引擎 v8 来进行解析(浏览器中的js分为两类:js的语法和webapi)

这里插一嘴:chrome的运行环境是指:v8引擎和内置api(比如DOM、BOM、js的内置对象等)

  1. V8 引擎负责解析和执行 JavaScript 代码。
  2. 内置 API 是由运行环境提供的特殊接口,只能在所属的运行环境中被调用。

总结:说了这么多就显得v8引擎就显得至关重要。简单来讲就是 ,一般情况下,前端的编程语言会放在服务器,然后拿出来在客户端执行,node.js它有一个基于chrome的v8的引擎,可以直接在服务端执行。在通俗点讲,就是前端程序员可以做些后端程序员做的事情了。比如基于 Express/Koa 可以快速构建 Web 应用之类的。👀

node.js怎么用?

首先下载node.js,Node.js 的官网地址: nodejs.org/zh-cn/ 下载node安装包,然后安装的时候一直下一步下一步就好了。

下载好之后,使用 Windows + r 可以打开黑窗口,然后执行

node -v // 查看版本号

如果能看到,就说明安装成功了

在node.js环境中执行js代码呢,打开你的vscode,然后创建你的一个js文件。打开终端(快捷键 CTRL + ~)

node 文件名 //可以按Tab键可以自动补齐哦

以上就是一些基本使用啦🐼

给大家补充一下终端常见指令~

clear 或者 cls      // 清空界面
cd 目录名           // 进入到目录中去
cd ..              //  返回上级目录
ctrl + c           //  停止当前 node 程序
↑↓上下箭头          // 切换历史输入记录

我这边主要想说的呢,就是node.js里面的第三方模块,毕竟这篇文章主要说npm常见指令。我们先来了解下什么是模块化思想吧

模块化:将一个完整的功能拆分成几个小功能去组合起来,这样做的优点呢,

  1. 更好去维护(比如项目的时候,拆分模块之后,如果某个模块出现了什么问题,就不会去影响其它模块)

  2. 更好的复用性(可以封装公共组件之类的)

模块可以分为:自定义模块(自己写的js文件,都是自定义模块);内置模块(node.js官方提供的);第三方模块(npm上面大佬写好的包,第三方创建的包)

node.js解决了什么问题

一句话总结:node.js提供了基础的功能(js语法)和 API(不是浏览器的API)。但是基于node.js这些基础功能衍生出了很多强大的框架和工具。大大提高了前端程序员的工作效率和行业竞争力。(比如可以自己写接口搭服务器啥的🤣)

第三方模块介绍

node.js的第三方模块又叫做包。包是由第三方个人或者是团队开发出来的,而且是开源免费的。

下包的好处?

1.提供了更高级和更方便的api,极高的提高了开发效率

可以从哪里下包?

可以从npm这个网站去下载包。npm是不要重新下载的,由于下载node.js的时候是直接一起下载npm这个包管理工具到自己的电脑上的。

npm全名叫做 Node Package Manager(简称 npm 包管理工具)

npm的常见指令

下包:

npm install 模块名

指定版本:

npm i 包名@指定的版本号

最新版本:

npm i 包名 -S

安装指定的包 记录到 devDependencies节点

npm i 包名 -D

快速创建packge.json

npm init -y

一次性安装所有包

npm i

卸载包

npm uni

全局包(判断某个包是全局包才要使用)

npm i -g

补充点

关于导出的注意事项:

  1. 每个模块都有自己独立的作用域,不能在其它模块去使用

  2. 每个js自定义的模块都有一个modelue对象,它里面存储了模块的相关信息

  3. 能将模块内的成员共享出去;使用require导入的时候,得到的就是module.exports所指的对象

  4. 导出什么,就是什么

  5. 可以覆盖

  6. exports和module.exports指向的是同一个对象,但是最终指向以module.exports为准

了解package.json两个节点

  1. devDependenciese节点:只在开发中会用到,项目上线不用

  2. dependencies:下载的第三方模块会放在此节点中,项目开发和上线都会用到

node_modules文件夹和packge - lock.json

初次安装包之后,文件夹中会出现node_modules文件夹和packge-lock.json的配置文件

  1. node_modeles:所有下载的包都会放在这个文件夹里面

  2. packge-lock:下载包的信息会放在里面(比如版本号,包的地址,作者信息啥的)

解决包下载慢的问题

原因是因为使用 npm 下包的时候,默认从国外的服务器进行下载,因此下包速度会很慢。解决的办法是使用 npm 淘宝镜像服务器。淘宝在国内搭建了一个服务器,专门把国外官方服务器上的包同步到国内的服务器,然后在国内提供下包的服务。从而极大的提高了下包的速度。

具体操作(切换镜像源):使用 Windows + r 可以打开黑窗口,输入


npm config get registry  //查看当前包的下载镜像源

npm config set registry = https://registry.npm.taobao.org/

npm config get registry  //检查镜像源是否切换


// 显示:<https://registry.npm.taobao.org/> 就说明成功啦

模块的加载机制

  1. 模块在第一次加载之后会被缓存起来 ,ruquire()方法不会被多次执行

  2. 内置模块的加载优先级最高

  3. 目标作为模块:会先去package.json的文件,并寻找 main 属性,作为 require()加载的入口

文章到这里就结束啦。第一次写文章,感觉说了很多废话,欢迎各位大佬的批评和指点。主要从浅层次谈一下对node.js的理解,以及npm包工具的指令和里面常见的一些问题。

48d9b29fe329ce46b4cbe3e38268a18.jpg

最后给大家分享一个vscode的插件:

image.png

可以简单翻译下代码中的英文单词啥的

image.png

感谢观看