当前位置: 首页 > news >正文

《黑马前端ajax+node.js+webpack+git教程》(笔记)——node.js教程+webpack教程(nodejs教程)

黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajax+node.js+webpack+git),一套全覆盖

文章目录

    • Node.js与Webpack-01.Node.js入门
      • 定义和作用
      • 什么是前端工程化?(离不开node.js)
      • Node.js 为何能执行JS?
      • Node.js 安装
      • 终端如何使用node.js
        • 可以用windows控制台
        • 也可以用vscode
        • vocode配置默认终端为windows cmd
      • 代码示例
        • 需求
        • 实战
      • 总结
    • Node.js与Webpack-02.fs模块-读写文件(fs.writeFile()、fs.readFile())
      • 定义
      • 代码示例
    • Node.js与Webpack-03.path模块-路径处理
      • 问题示例
      • path模块(`__dirname`获取绝对文件路径;path.join()拼接跨平台路径)
      • 代码示例
      • 建议在代码中用__dirname获取文件绝对路径,这样不论在哪个工作路径运行代码,代码都能找到相对的资源文件;同时path模块在处理`/`或`\`时会自动做跨平台处理,不用自行构建
    • Node.js与Webpack-04.案例-压缩前端html
      • 定义
      • 代码示例(将html代码中的换行符和回车符都替换成空格)
    • Node.js与Webpack-05.URL中的端口号
      • 定义
      • 常见服务程序
      • 总结
    • Node.js与Webpack-06.http模块-创建Web服务
      • 创建web服务http接口
      • 代码示例
    • Node.js与Webpack-07.案例-浏览时钟
      • 需求
      • 步骤
      • 代码
    • Node.js与Webpack-08.模块化简介(如何定义js模块)
      • 定义(模块就是一个js文件)
      • CommonJS标准(默认支持,不需要添加package.json)(导出:module.exports = {}、导入:require('模块名或路径'))
      • 代码示例
      • 总结
    • Node.js与Webpack-09.ECMAScript标准-`默认导出和导入`(官方推荐)(导出:export default = {}、导入:import 变量名 from '模块名或路径')
      • 定义(ECMAScript标准导出和导入,需要在模块下增加package.json)
      • 代码示例
      • 总结
    • Node.js与Webpack-10.ECMAScript标准-`命名导出和导入`(如果不想一次性全部导入,想只导入需要的可以用这个)
      • 定义
      • 代码示例
      • 总结
    • Node.js与Webpack-11.包的概念
      • 定义(一个文件夹,有两种类型:项目包、软件包)
      • 代码示例
      • 总结
    • Node.js与Webpack-12.npm软件包管理器
      • 定义与使用
      • 示例
        • 目标
        • 终端打开项目文件夹
        • 执行`npm init -y`初始化`package.json`
        • 执行`npm i dayjs`安装库
        • 执行`node server.js`使用软件包
      • 总结
    • Node.js与Webpack-13.npm安装所有依赖
      • 定义:`npm i`可根据package.json下载所需软件包
      • 测试
      • 总结
    • Node.js与Webpack-14.npm全局软件包-nodemon
      • 定义
      • 安装
      • 运行测试
      • 总结
    • Node.js与Webpack-15.Node.js概念和常用命令总结
      • Node.js模块化总结
      • Node.js包总结
      • 常用命令总结
    • Node.js与Webpack-16.Webpack简介以及体验
      • Webpack介绍
      • 使用示例
    • Node.js与Webpack-17.Webpack修改入口和出口
      • webpack.config.js文件(位于项目根目录)
      • 入口和出口官方文档
    • Node.js与Webpack-18.案例-用户登录-长度判断
      • 案例需求定义
      • 代码示例
    • Node.js与Webpack-19.Webpack自动生成html文件(html-webpack-plugin插件)
      • 定义
      • 官方文档
      • 实战训练
    • Node.js与Webpack-20.Webpack打包css代码(将css打包到js代码中)(css-loader插件)
      • 定义
      • 官网
      • 实战
    • Node.js与Webpack-21.优化-提取css代码(将css代码打包成独立文件)(mini-css-extract-plugin插件)
      • 定义
      • 官网
      • 实操
    • Node.js与Webpack-22.优化-压缩过程(压缩代码压缩、生产模式压缩)(css-minimizer-webpack-plugin插件)
      • 问题
      • 定义
      • 使用方法
      • 实操
        • 步骤:
        • 安装
        • 打开配置文件`webpack.config.js`加上代码,按照官网[http://webpack.docschina.org/plugins/css-minimizer-webpack-plugin/](http://webpack.docschina.org/plugins/css-minimizer-webpack-plugin/)上的加就行:
        • 执行打包`npm run build`
    • Node.js与Webpack-23.Webpack打包less代码
      • 定义
    • Node.js与Webpack-24.Webpack打包图片
      • 定义
    • Node.js与Webpack-25.案例-用户登录-功能完成
      • 定义
      • 操作
    • Node.js与Webpack-26.Webpack搭建开发环境(webpack-dev-server)增加开发效率
      • 定义
      • 实操
    • Node.js与Webpack-27.Webpack打包模式(development和production)
      • 定义
    • Node.js与Webpack-28.Webpack打包模式应用(需求:在开发模式下用 style-loader内嵌更快,在生产模式下提取 css 代码)
      • 解决方案:使用cross-env环境变量工具,可以设置不同环境变量来读取process.env来配置不同打包模式(需修改代码)
      • 实操
    • Node.js与Webpack-29.前端-注入环境变量(注意:cross-env 设置的只在 Node.js 环境生效,前端代码无法访问process.env.NODE_ENV,所以需要DefinePlugin插件来注入环境变量)
      • 定义
      • 实操
    • Node.js与Webpack-30.Webpack开发环境调错(inline-source-map插件)
      • 定义
      • 实操(原来webpack.config.js的配置就是js对象的配置)
    • Node.js与Webpack-31.Webpack解析别名alias
      • 定义
      • 实操
    • Node.js与Webpack-32.优化-生产模式下使用CDN(bootcdn)
      • 定义
      • 实操
    • Node.js与Webpack-33.Webpack多页面打包
      • 定义
    • Node.js与Webpack-34.案例-打包发布文章页面
      • 定义
    • Node.js与Webpack-35.优化-分割公共代码(打包的代码有复用冗余,太大,用这个方法提取公共代码)
      • 定义
    • Node.js与Webpack-36.总结
      • 总结
    • Git-01.初识
    • Git-02.仓库
    • Git-03.三个区域
    • Git-04.文件状态
    • Git-05.暂存区使用
    • Git-06.练习-登录页面
    • Git-07.回退版本
    • Git-08.删除文件
    • Git-09.忽略文件
    • Git-10.分支
    • Git-11.练习-登录修复
    • Git-12.分支-合并与删除
    • Git-13.分支-合并与提交
    • Git-14.分支-合并冲突
    • Git-15.常用命令
    • Git-16.远程仓库
    • Git-17.远程仓库-克隆
    • Git-18.多人协同开发
    • Git-19.在VSCode中使用
    • Git-20.部署黑马头条数据管理平台
    • Git-21.命令总结
    • 前端框架前置课程完结篇

Node.js与Webpack-01.Node.js入门

定义和作用

在这里插入图片描述

什么是前端工程化?(离不开node.js)

在这里插入图片描述

Node.js 为何能执行JS?

在这里插入图片描述

Node.js 安装

https://nodejs.org/zh-cn

在这里插入图片描述

终端如何使用node.js

可以用windows控制台

在这里插入图片描述

也可以用vscode

在这里插入图片描述

建议用cmd终端,别用poweshell终端。

在这里插入图片描述

在这里插入图片描述

vocode配置默认终端为windows cmd

在这里插入图片描述
在这里插入图片描述

代码示例

需求

在这里插入图片描述

实战

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-02.fs模块-读写文件(fs.writeFile()、fs.readFile())

定义

在这里插入图片描述

代码示例

在这里插入图片描述
在这里插入图片描述

const fs = require('fs')fs.writeFile('./test.txt', 'hello, Node.js', (err) => {if (err) {console.log('err')}else {console.log('写入成功')}
})fs.readFile('./test.txt', (err, data) => {if (err) {console.log(err)}else {console.log(data.toString())}
})

在这里插入图片描述

Node.js与Webpack-03.path模块-路径处理

问题示例

在这里插入图片描述

path模块(__dirname获取绝对文件路径;path.join()拼接跨平台路径)

在这里插入图片描述

代码示例

在这里插入图片描述

建议在代码中用__dirname获取文件绝对路径,这样不论在哪个工作路径运行代码,代码都能找到相对的资源文件;同时path模块在处理/\时会自动做跨平台处理,不用自行构建

Node.js与Webpack-04.案例-压缩前端html

定义

在这里插入图片描述

代码示例(将html代码中的换行符和回车符都替换成空格)

/g表示全局匹配
在这里插入图片描述
在这里插入图片描述

Node.js与Webpack-05.URL中的端口号

定义

在这里插入图片描述

常见服务程序

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-06.http模块-创建Web服务

创建web服务http接口

在这里插入图片描述

代码示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Node.js与Webpack-07.案例-浏览时钟

需求

在这里插入图片描述

步骤

在这里插入图片描述

代码

在这里插入图片描述

在这里插入图片描述

Node.js与Webpack-08.模块化简介(如何定义js模块)

定义(模块就是一个js文件)

在这里插入图片描述

CommonJS标准(默认支持,不需要添加package.json)(导出:module.exports = {}、导入:require(‘模块名或路径’))

在这里插入图片描述

代码示例

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-09.ECMAScript标准-默认导出和导入(官方推荐)(导出:export default = {}、导入:import 变量名 from ‘模块名或路径’)

定义(ECMAScript标准导出和导入,需要在模块下增加package.json)

在这里插入图片描述

代码示例

在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-10.ECMAScript标准-命名导出和导入(如果不想一次性全部导入,想只导入需要的可以用这个)

定义

在这里插入图片描述

代码示例

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-11.包的概念

定义(一个文件夹,有两种类型:项目包、软件包)

在这里插入图片描述

唯一出口文件index.js不是必须的,如果不存在,就会到package.json中去找定义的入口文件(main属性指定的入口文件)

代码示例

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-12.npm软件包管理器

定义与使用

在这里插入图片描述

示例

目标

在这里插入图片描述
在这里插入图片描述

终端打开项目文件夹

在这里插入图片描述

执行npm init -y初始化package.json
npm init -y

在这里插入图片描述

{"name": "05","version": "1.0.0","main": "server.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","start": "node server.js"},"keywords": [],"author": "","license": "ISC","description": ""
}
执行npm i dayjs安装库

在这里插入图片描述

装好后自动在package.json中记录了这个包版本:

在这里插入图片描述

执行node server.js使用软件包

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-13.npm安装所有依赖

定义:npm i可根据package.json下载所需软件包

在这里插入图片描述

测试

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-14.npm全局软件包-nodemon

定义

在这里插入图片描述

安装

全局安装:npm i nodemon -g
在这里插入图片描述

运行测试

nodemon server.js

修改代码后,按ctrl + s保存代码,程序将会自动重启。

在这里插入图片描述

总结

在这里插入图片描述

Node.js与Webpack-15.Node.js概念和常用命令总结

Node.js模块化总结

在这里插入图片描述

Node.js包总结

在这里插入图片描述

常用命令总结

在这里插入图片描述

Node.js与Webpack-16.Webpack简介以及体验

Webpack介绍

在这里插入图片描述

使用示例

在这里插入图片描述

npm i webpack webpack-cli --save-dev

具体参考文章:webpack介绍(现代JS应用静态模块打包工具,在内部构建依赖图,映射项目所需模块,生成打包后的文件)webpack.config.js

Node.js与Webpack-17.Webpack修改入口和出口

webpack.config.js文件(位于项目根目录)

在这里插入图片描述
示例文件:

文件中建议入口文件和出口文件都使用绝对路径。
在这里插入图片描述

入口和出口官方文档

在这里插入图片描述

Node.js与Webpack-18.案例-用户登录-长度判断

案例需求定义

在这里插入图片描述

代码示例

https://gitee.com/arnold_s/my-learning-test/tree/master/20250501_node.jsTest/08_WEBPACK_STUDY

Node.js与Webpack-19.Webpack自动生成html文件(html-webpack-plugin插件)

定义

在这里插入图片描述

官方文档

http://webpack.docschina.org/plugins/

http://webpack.docschina.org/plugins/html-webpack-plugin

在这里插入图片描述

完整参数:
https://github.com/jantimon/html-webpack-plugin#options

在这里插入图片描述

实战训练

在这里插入图片描述

npm i html-webpack-plugin --save-dev

在这里插入图片描述
配好执行命令打包就行:

在这里插入图片描述

Node.js与Webpack-20.Webpack打包css代码(将css打包到js代码中)(css-loader插件)

定义

在这里插入图片描述

官网

http://webpack.docschina.org/loaders/css-loader/

在这里插入图片描述
注意加载器会从后往前使用,先使用css-loader,再使用style-loader。

实战

在这里插入图片描述
在这里插入图片描述

执行npm run build,然后css被打包到js里了:

在这里插入图片描述

打开dist中的login.html:

在这里插入图片描述

在这里插入图片描述

Node.js与Webpack-21.优化-提取css代码(将css代码打包成独立文件)(mini-css-extract-plugin插件)

定义

在这里插入图片描述

npm install --save-dev mini-css-extract-plugin

在这里插入图片描述

官网

http://webpack.docschina.org/plugins/mini-css-extract-plugin/

在这里插入图片描述

实操

在这里插入图片描述

npm run build

在这里插入图片描述

生成了单独的main.css文件:

在这里插入图片描述

html文件中也有引入main.css的代码:

在这里插入图片描述

打开html,也没有问题:

在这里插入图片描述
在这里插入图片描述

Node.js与Webpack-22.优化-压缩过程(压缩代码压缩、生产模式压缩)(css-minimizer-webpack-plugin插件)

问题

上一节自己写的css代码并没有被压缩:

在这里插入图片描述

定义

http://webpack.docschina.org/plugins/mini-css-extract-plugin/#minimizing-for-production
在这里插入图片描述

http://webpack.docschina.org/plugins/css-minimizer-webpack-plugin/

在这里插入图片描述

使用方法

在这里插入图片描述

实操

步骤:

在这里插入图片描述

安装
npm i css-minimizer-webpack-plugin --save-dev

在这里插入图片描述

打开配置文件webpack.config.js加上代码,按照官网http://webpack.docschina.org/plugins/css-minimizer-webpack-plugin/上的加就行:
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
    // 优化打包过程optimization: {minimizer: [// 在 webpack@5 中,你可以使用 `...` 语法来扩展现有的 minimizer(即 `terser-webpack-plugin`),将下一行取消注释// `...`,new CssMinimizerPlugin(),],},

在这里插入图片描述

记得取消...注释,具体原因参考文章:为什么在Webpack 5 中,直接添加new CssMinimizerPlugin()到optimization.minimizer数组而不取消注释…语法,会导致JavaScript压缩失效?

执行打包npm run build

在这里插入图片描述

然后我发现没压缩,原因不知道是谁在webpack.config.js中设置了开发模式而不是生产模式:

在这里插入图片描述

解决方法可以是直接把配置文件改成生产模式,也可以根据官网把 optimization.minimize 设置为 true:

http://webpack.docschina.org/plugins/css-minimizer-webpack-plugin/
在这里插入图片描述
在这里插入图片描述
然后重新编译发现可以打包了:

在这里插入图片描述

Node.js与Webpack-23.Webpack打包less代码

http://webpack.docschina.org/loaders/less-loader#root

https://www.bilibili.com/video/BV1MN411y7pw/?p=105

定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Node.js与Webpack-24.Webpack打包图片

http://webpack.docschina.org/guides/asset-modules/#root

https://www.bilibili.com/video/BV1MN411y7pw/?p=106

定义

在这里插入图片描述
在这里插入图片描述

Node.js与Webpack-25.案例-用户登录-功能完成

定义

在这里插入图片描述
在这里插入图片描述

操作

cd D:\3_coding\my-learning-test_edit\20250501_node.jsTest\09_webpack_user_login_axios
npm i axios
npm i webpack webpack-cli --save-devnpm install --save-dev css-loader style-loader less less-loader html-webpack-plugin mini-css-extract-plugin terser-webpack-plugin clean-webpack-plugin babel-loader @babel/core @babel/preset-envnpm run build

Node.js与Webpack-26.Webpack搭建开发环境(webpack-dev-server)增加开发效率

定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实操

在这里插入图片描述

npm i webpack-dev-server --save-dev

在这里插入图片描述
在这里插入图片描述

npm run dev

Node.js与Webpack-27.Webpack打包模式(development和production)

定义

在这里插入图片描述

不建议在webpack.config.js中改,建议在package.json中改

Node.js与Webpack-28.Webpack打包模式应用(需求:在开发模式下用 style-loader内嵌更快,在生产模式下提取 css 代码)

解决方案:使用cross-env环境变量工具,可以设置不同环境变量来读取process.env来配置不同打包模式(需修改代码)

在这里插入图片描述

实操

在这里插入图片描述

npm i cross-env --save-dev

在这里插入图片描述
在这里插入图片描述

Node.js与Webpack-29.前端-注入环境变量(注意:cross-env 设置的只在 Node.js 环境生效,前端代码无法访问process.env.NODE_ENV,所以需要DefinePlugin插件来注入环境变量)

定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实操

在这里插入图片描述
在这里插入图片描述

在开发环境运行代码和在打包后生产环境运行,呈现不同效果。

Node.js与Webpack-30.Webpack开发环境调错(inline-source-map插件)

定义

在这里插入图片描述

实操(原来webpack.config.js的配置就是js对象的配置)

在这里插入图片描述
配置了它之后,浏览器在开发模式下就能定位到准确代码位置,生产模式下无法定位

Node.js与Webpack-31.Webpack解析别名alias

定义

在这里插入图片描述

在这里插入图片描述

通过这个路径就能找到了:
在这里插入图片描述

在这里插入图片描述

实操

在这里插入图片描述

Node.js与Webpack-32.优化-生产模式下使用CDN(bootcdn)

定义

在这里插入图片描述
在这里插入图片描述

实操

https://www.bootcdn.cn/axios/
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后测试:

开发环境:

npm run dev

生产环境:

npm build

Node.js与Webpack-33.Webpack多页面打包

定义

在这里插入图片描述
在这里插入图片描述

感觉内容好多好乱,看得我都懵逼了!

https://www.bilibili.com/video/BV1MN411y7pw?p=115

Node.js与Webpack-34.案例-打包发布文章页面

定义

在这里插入图片描述
在这里插入图片描述

懵,尤其对打包配置,配来配去,不知道为啥这么配,配的地方又多,不知道学了ts后会不会好点!!

Node.js与Webpack-35.优化-分割公共代码(打包的代码有复用冗余,太大,用这个方法提取公共代码)

定义

在这里插入图片描述

说是后面vue react之类的,浏览器没法直接运行,必须得用webpack打包的

Node.js与Webpack-36.总结

总结

在这里插入图片描述

vue react 小程序

Git-01.初识

Git-02.仓库

Git-03.三个区域

Git-04.文件状态

Git-05.暂存区使用

Git-06.练习-登录页面

Git-07.回退版本

Git-08.删除文件

Git-09.忽略文件

Git-10.分支

Git-11.练习-登录修复

Git-12.分支-合并与删除

Git-13.分支-合并与提交

Git-14.分支-合并冲突

Git-15.常用命令

Git-16.远程仓库

Git-17.远程仓库-克隆

Git-18.多人协同开发

Git-19.在VSCode中使用

Git-20.部署黑马头条数据管理平台

Git-21.命令总结

前端框架前置课程完结篇

相关文章:

  • 【占融数科-注册/登录安全分析报告】
  • Kotlin Compose Button 实现长按监听并实现动画效果
  • Text2SQL在Spark NLP中的实现与应用:将自然语言问题转换为SQL查询的技术解析
  • 深度学习---模型预热(Model Warm-Up)
  • 【实战】GPT-SoVITS+内网穿透:3分钟搭建可公网访问的语音克隆系统
  • 苍穹外卖 - Day03
  • 【AI News | 20250519】每日AI进展
  • 深度强化学习 | 基于SAC算法的移动机器人路径跟踪(附Pytorch实现)
  • Manus AI 突破多语言手写识别技术壁垒:创新架构、算法与应用解析
  • 9万字67道Java集合经典面试题(2025修订版)
  • 安全强化的Linux
  • 云原生时代的系统可观测性:理念变革与实践体系
  • 枪机定焦系统的自动控制装置
  • 1.3.3 数据共享、汇聚和使用中的安全目标
  • spring中的EnvironmentPostProcessor接口详解
  • 虚拟币制度钱包开发:功能设计与成本全解析
  • c#基础01(.Net介绍)
  • 每日c/c++题 备战蓝桥杯(洛谷P1440 求m区间内的最小值 详解(单调队列优化))
  • RHCE 练习三:架设一台 NFS 服务器
  • 02-前端Web开发(JS+Vue+Ajax)
  • 莱布雷希特专栏:古典乐坛边缘人
  • 媒体评教师拎起学生威胁要扔下三楼:师风师德不能“悬空”
  • 秦洪看盘|风格有所转变,热钱回流高弹性品种
  • 美官方将使用华为芯片视作违反美出口管制行为,外交部回应
  • 大环线呼之欲出,“金三角”跑起来了
  • 昆明公布3起经济犯罪案例:一人持有820余万假美元被判刑十年