一:Node.js

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

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

因为浏览器和 Node.js 都内置了 JavaScript V8 Engine。

它可以将 JavaScript 代码编译为计算机能够识别的机器码。
在这里插入图片描述
JavaScript 运行在浏览器中控制的是浏览器窗口和 DOM 文档。

JavaScript 运行在 Node.js 中控制的操作系统级别的内容。

1、浏览器中运行的 JavaScript 和 Node.js 中运行的 JavaScript 区别

在内置了 JavaScript V8 Engine 以后实际上只能执行 ECMAScript,就是语言中的语法部分。

浏览器为了能够让 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,比如对操作系统中的文件和文件夹进行操作。获取操作系统信息,比如系统内存总量是多少,系统临时目录在哪,对系统的进程进行操作等等。
在这里插入图片描述

2、为什么浏览器中的 JavaScript 不能控制系统级别的 API ?

浏览器是运行在用户的操作系统中的,如果能控控制系统级别的 API 就会存在安全问题。

Node.js 是运行在远程的服务器中的,访问的是服务器系统 API,不存在这方面的安全问题。

3、Node.js 能够做什么?

我们通常使用它来构建服务器端应用和创建前端工程化工具。

JavaScript 运行在浏览器中我们就叫它客户端 JavaScript。

JavaScript 运行在 Node.js 中我们就叫它服务器端 JavaScript。

二:NPM包管理器

1、npm简介

NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于前端的Maven 。

2、使用npm管理项目

1、项目的初始化

npm init

#按照提示输入相关信息,如果是用默认值则直接回车即可。
#name: 项目名称
#version: 项目版本号
#description: 项目描述
#keywords: {Array}关键词,便于用户搜索到我们的项目

#最后会生成package.json文件,这个是包的配置文件,
相当于maven的pom.xml
#我们之后也可以根据需要进行修改。

2、修改npm镜像

NPM官方的管理的包都是从 http://npmjs.com下载的,但是这个网站在国内速度很慢。
推荐使用淘宝 NPM 镜像 http://npm.taobao.org/ ,淘宝 NPM 镜像是一个完整 npmjs.com 镜像,同步频率目前为 10分钟一次,以保证尽量与官方服务同步。

#设置镜像地址:
npm config set registry https://registry.npm.taobao.org 

#查看npm配置信息
npm config list

3、npm install命令

1.基本命令

#使用 npm install 会安装依赖包的最新版,
#模块安装的位置:项目目录  \node_modules
#同时package.json 文件中,依赖包会被添加到dependencies节点下,
类似maven中的 <dependencies>
#默认参数:--save  简写  -S  将当前依赖保存在dependencies节点下
npm install jquery

在这里插入图片描述
2.下载特定版本的依赖

#如果安装时想指定特定的版本
npm install jquery@2.1.x

3.下载开发依赖

#devDependencies节点:开发时的依赖包,项目打包到生产环境的
时候不包含的依赖
#使用 -D参数将依赖添加到devDependencies节点
npm install --save-dev eslint
#或简写
npm i -D eslint

4.下载全局依赖

#全局安装
#Node.js全局安装的npm包和工具的位置:
用户目录\AppData\Roaming\npm\node_modules

#一些命令行工具常使用全局安装的方式
npm install --global webpack
#或简写
npm install -g webpack

5.根据依赖下载安装包

#npm管理的项目在备份和传输的时候一般不携带node_modules文件夹
#安装会自动在项目目录下添加 package-lock.json文件,
这个文件帮助锁定安装包的版本

npm install      #根据package.json中的配置下载依赖,初始化项目

6.其他命令

#更新包(更新到最新版本)
npm update 包名
#全局更新
npm update -g 包名
#卸载包
npm uninstall 包名
#全局卸载
npm uninstall -g 包名

三:Webpack

1、Webpack简介

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。

从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。
在这里插入图片描述

2、Webpack

1、全局安装

npm install -g webpack webpack-cli
或
npm install -g webpack
npm install -g webpack-cli

2、JS打包

创建配置文件webpack.config.js
以下配置的意思是:
①读取当前项目目录下src文件夹中的main.js(入口文件)内容,分析资源依赖,把相关的js文件打包
②打包后的文件放入当前目录的dist文件夹下
③打包后的js文件名为bundle.js

constpath=require("path") //Node.js内置模块
module.exports= {
    entry: './src/main.js', //配置入口文件
    output: {
      //输出路径,__dirname:当前文件所在路径
      path: path.resolve(__dirname, './dist'), 
      filename: 'bundle.js'//输出文件
    }
}

3、执行编译命令

webpack --mode=development
#执行后查看bundle.js 里面包含了上面两个js文件的内容并进行了代码打包


也可以配置项目的npm运行命令,修改package.json文件
"scripts": {
    //...,
    "dev": "webpack --mode=development",
    "prod": "webpack --mode=production"
}

运行npm命令执行打包,启动项目
npm run dev #开发打包
或
npm run prod #生产打包

在这里插入图片描述

四:前端框架介绍

vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。

GitHub地址:https://github.com/PanJiaChen/vue-element-admin

1、目录结构

在这里插入图片描述

2、关键文件

1、build/webpack.dev.conf.js

webpack配置文件,包含项目在开发环境打包和运行的相关配置
webpack.dev.conf.js 中引用了 webpack.base.conf.js
webpack.base.conf.js 中定义了项目打包的入口文件
在这里插入图片描述
在这里插入图片描述
在HtmlWebpackPlugin配置html模板,生成的js就会自动插入到模板中,如下面的配置。
因此生成的js文件会被自动插入到名为index.html的页面中
在这里插入图片描述

2、index.html

项目默认的html页面
在这里插入图片描述
在这里插入图片描述

3、src/main.js

项目js入口文件,项目的所有前端功能都在这个文件中引入和定义,并初始化全局的Vue对象
在这里插入图片描述

4、config/dev.env.js

定义全局常量值
在这里插入图片描述
在这里插入图片描述因此,在项目中的任意位置可以直接使用 process.env.BASE_API 常量表示后端接口的主机地址

5、src/utils/request.js

引入axios模块,定义全局的axios实例,并导出模块
在这里插入图片描述

6、src/api/login.js

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐