邂逅Node.js
首先先要来学习一下nodejs的基础(和后端开发有联系的)
再然后的学习路线是学习npm,yarn,cnpm,npx,pnpm等包管理工具
然后进行模块化的使用,再去学习webpack和git(版本控制工具)
Node.js是什么
官方对于nodejs的定义:Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境
他们的关系是:Node程序中含有V8引擎(可以执行JavaScript代码)
V8引擎可以嵌入到C++应用程序中,不论是Chrome还是Node.js都是嵌入了V8引擎来执行JavaScriptdiamante
在Chrome浏览器中,还需要解析,渲染HTML、CSS等相关渲染引擎,还需要提供支持浏览器操作的API、浏览器自己的事件循环等。。。
在Node.js中还需要进行文件系统读写、网络IO、加密、压缩解压文件等操作
Node程序用JS/C++/C语言进行编写
我们编写的JavaScript代码会经过V8引擎,在通过Node.js的Bindings将任务放到Libuv的事件循环中,libuv是使用C语言编写的库,提供了事件循环、文件系统读写、网络IO、线程池 等内容
Node.js的应用场景
1.目前前端开发的 库都是以node包的形式进行管理
(npm本身是在node里的,当安装node的时候自动就会安装npm)
现在npm,yarn,pnpm工具成为前端开发使用最多的工具
越来越多的公司使用Node.js作为Web服务器开发、中间件、代理服务器
大量的项目都需要借助Node.js完成前后端渲染的同构应用
资深前端工程师需要为项目编写脚本工具(因为前端工程师编写脚本通常用JS)
前面说的都是Node的理论知识,现在开始实践,进行Node的安装
Node的安装
这是node的官网:
Node.js — 在任何地方运行 JavaScripthttps://nodejs.org/zh-cn点进去之后可以自选版本安装,本人的电脑之前已经安装过node了:
最好是选择较为稳定的版本进行安装,因为不容易出现问题,就算出现问题了也好解决一点(站在了前人的肩膀上)
安装完node之后可以直接借助node帮助我们运行js的代码,比如这样:
console.log("aaaa")
console.log("bbbb")
console.log("cccc")
console.log("dddd")
console.log("eeee")
这是因为node里面包含V8引擎可以解析JS代码并运行
node有版本的工具,你可以在你的电脑上装多个node的版本
工具有n和nvm,n这个工具就比较好用(是TJ开发的)但是不论是n还是nvm都有一个比较大的缺点:不支持Windows。啊?
但是有人在github上发布了nvm的支持Windows的版本(不是nvm本身)
在实际的开发中用一个版本就行勒,但是架不住有人想来回换版本
这是那个Windows版本的nvm工具:
coreybutler/nvm-windows: A node.js version management utility for Windows. Ironically written in Go.https://github.com/coreybutler/nvm-windows安装完之后就可以通过nvm list查看它帮你管理着什么样的包了
如果想要通过nvm安装东西,那就nvm install x.x.x(版本号),如果想要安装最新版,那可以用latest代替版本号
nvm use可以切换版本
如果你用的是n
安装:
npm install -g n
安装最新的lts版本:
n lts
安装最新的版本:
n latest
一个n就是查看所有的 版本(可以上下键切换,选定想要的之后回车就切换了)
Node的输入和输出
想要进行输入就要
const arg1 = process.argv[2]
const arg2 = process.argv[3]console.log(arg1,arg2)
再这样运行
输出的话就使用console.log就完事了,想要清空控制台就是console.clear,想打印函数的调用栈就console.trace,输出是这样的:
Node的REPL
什么是REPL?
REPL是Read-Eval-Print Loop的简称,翻译是“读取-求值-输出”循环
是一个简单的交互式的编程环境(说白了就是你打开网页然后F12一下的那个console栏)
在终端中敲一个node回车就可以来到这个环境了
想要清空内容就用cls
按两次Ctrl+C就可以退出了
这个没有git bash方便(git bash可以执行很多在Linux终端下可用的命令)