Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。
Node.js
并不是运行在浏览器里的一个库或框架。
Node.js
可以提供了一系列服务端能力,如 HTTP 服务
、读写本地文件
等,开发者可以利用 JavaScript
来使用这些能力,因为前端开发者的主要语言就是 JavaScript
,所以利用 Node.js
可以降低学习成本,让前端开发者更容易接触到服务端开发。
1. 安装 Node.js
如果是为了学习使用,建议使用最新版,支持更多的特性。
Node.js
的安装过程和普通软件相似,安装完毕后可以通过命令行测试是否安装成功。
1.1 windows 下打开命令提示符
1.2 Mac OS 下打开终端
在 Mac OS
操作系统下,打开 聚焦搜索
,输入 终端
后回车即可打开终端。
打开终端后输入 node -v
,如果正确输出了版本号,则表示安装成功。
因为两个平台下的命令几乎一致,后续内容不再区分平台,统一使用 Mac OS 下的终端。
2. npm
Node.js
安装后,会同时安装 npm
,和查看 Node.js
的版本一样,在终端里输入 npm -v
,即可查看到 npm
的版本号。
npm -v
npm
的全称是 Node Package Manager
,翻译过来就是 node.js
的包管理工具。
同样的可以自己开发一些 包
,发布到 npm
,然后造福社会。
2.1 创建一个包
package.json
所在的位置通常会被作为项目的根目录。
可以通过 npm
提供的命令创建一个 package.json
,可以先创建一个项目目录,然后在终端中进入到这个目录,使用 npm init -y
命令,就可以创建一个最简单的 package.json
。
当然现在的工程化的前端项目,也会用 package.json
来描述项目信息,来管理依赖、工作里等,一个包不一定要发送到 npm 上。
2.2 package.json 简析
package.json
中有许多项目,描述了不同的信息。
这里介绍几个常用的字段。
2.1.1 devDependencies
{
"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/plugin-proposal-decorators": "^7.3.0"
}
}
devDependencies
记录了一些开发依赖,这些依赖在生产环境不会使用。
2.1.2 dependencies
"dependencies": {
"md5": "^2.2.1"
}
dependencies
记录了生产、开发环境都会用到的依赖。
如 jquery
,这样实实在在跑在项目里,支撑起项目功能的依赖。
2.1.3 scripts
{
"scripts": {
"dev": "echo \"development\""
}
}
scripts
可以说是直接接触到的最常用的一个配置项。
配置 script
可以完成一些简单的工作流,或者把复杂的命令配置为一个别名。
如配置的 dev
项,就可以通过在终端输入 npm run dev
来调用。
同时 script
还提供了前置和后置钩子,具体可以参阅文档。
3. 体验 Node.js
知道了 npm
和 node.js
的关系,了解了 package.json
的作用,就可以来尝试使用 Node.js
做应用了。
3.1 读写文件
// app.js
var fs = require('fs');
var text = fs.readFileSync('./text.txt', 'utf-8');
console.log(text);
3.2 使用 npm 包
md5
是很常用的加密算法,但通常又不可能自己去实现一遍,快速迭代的项目可以 拿来主义
,有现成的方案直接拿来用。
npm init -y
npm i md5
// app.js
var md5 = require('md5');
var password = '123456';
var encode = md5(password);
console.log(encode);
安装好的包直接通过 require
引入,然后跟着包的文档使用即可。
4. 小结
Node.js
目前生态主要集中在前端工具上,大众的前段工程化的解决方案,都是由 Node.js
来驱动完成。
作为前端开发者,基础的使用 Node.js
已经是必备技能,许多针对项目的自动化的流程工具,都需要前端开发者自己动手实现。