个人技术分享

node.js 是什么?

Node.js 是编程语言吗?

Node.js 不是一门编程语言,它是一个执行 JavaScript 代码的工具。工具是指可以安装在 计算机之上的软件。

为什么浏览器和 Node.js 都可以运行 JavaScript?

  • 因为浏览器和 Node.js 都内置了 JavaScript V8 Engine。
  • 它可以将 JavaScript 代码编译为计算机能够识别的机器码

浏览器中运行的 JavaScript 和 Node.js 中运行的 JavaScript 有区别吗?

浏览器为了能够让 JavaScript 操作浏览器窗口以及 HTML 文档,所以在 JavaScript V8 Engine 中添加了控制它们的 API, 就是 DOM 和 BOM. 所以 JavaScript 在浏览器中运行时是可以控制浏览器窗口对象和DOM文档对象的。

和浏览器不同,在 Node.js 中是没有 DOM 和 BOM 的,所以在 Node.js 中不能执行和它们相关的代码,比如 window.alert() 或者 document.getElementById(). DOM 和 DOM 是浏览器环境中特有的。

在 Node.js 中,作者向其中添加了很多系统级别的 API,比如对操作系统中的文件和文件夹进行操作。获取操作系统信息,比如系统内存总量是多少,系统临时目录在哪,对系统的进程进行操作等。

Node.js 能够做什么?

  • 我们通常使用它来构建服务器端应用和创建前端工程化工具。
  • JavaScript 运行在浏览器中我们就叫它客户端 JavaScript。
  • JavaScript 运行在 Node.js 中我们就叫它服务器端 JavaScript

Node.js 的应用场景有哪些?

Node.js与经典的PHP也常有比较。Node.js比PHP更适合实时应用程序,如实时聊天或游戏。PHP环境的执行效率通常低于Node.js,同时Node.js具有更好的并发处理能力

Node.js适用于多种场景,尤其是那些重视实时数据交互和高并发的应用。这包括但不限于:

  1. API服务器:Node.js能够处理大量的同步请求,因此它成为构建RESTful API的理想选择。
  2. 单页应用(SPA):单页应用通常需要与服务器进行频繁的数据交互,Node.js能够提供良好的支持。

安装

## 安装 gulp 命令行工具
npm install --global gulp-cli

 
## 安装 gulp,作为开发时依赖项
npm install --save-dev gulp

为什么要用Gulp ?

在前端开发中,Gulp是一个node.js 的自动化构建工具,它通过流和代码优于配置的策略来简化任务编写的工作,可以帮助开发者构建自动化工作流程,如: 

  • 网页自动刷新、
  • CSS预处理、
  • 代码检测、
  • 图片压缩等,

只需要简单的命令行就可以全部完成,提高了开发效率和质量。

官网

https://www.gulpjs.com.cn/docs/getting-started/quick-start/

实践

先决条件

管理员运行powershell
## 解除powershell 脚本运行
set-executionpolicy remotesigned
安装依赖
npm install gulp-cli -g

###
npm install gulp --save-dev

文件目录

root@vm-local:~/knight# tree myapp
myapp
├── dist
│   └── js
│       └── app.js
├── gulpfile.js
├── node_modules
├── package.json
├── package-lock.json
└── src
    ├── app.js
    └── config.json

5 directories, 6 files

gulpfile.js

var gulp = require('gulp');       // 导入gulp
var uglify = require('gulp-uglify'); // 导入gulp-uglify

// 创建压缩任务,knight-js 是任务名
gulp.task('knight-js', done=> {
  // 1. 找到文件
  gulp.src('src/*.js')
  // 2. uglify压缩
      .pipe(uglify())
  // 3. 另存到dist压缩后的文件
      .pipe(gulp.dest('dist/js'))
      done()
})

开始打包

# check task
gulp --tasks

## build
gulp knight-js


## 运行
node .\dist\js\app.js