前端复习第一天(webpack 工程化简单使用)

标题前端复习第一天(webpack 工程化简单使用)

1、前端目前实行

​ 模块化(js\css等依赖 element \layui)

​ 组件化(页面封装组件)

​ 规范化(代码规范、文件层级规范、命名规范、注释规范等)

​ 自动化(自动编译、自动更新、自动部署、git)

2、前端工程化 目前主流运用 webpack 工具来进行

  1. 初始化项目
npm init -y  // 生成一个pack.json 文件
在根目录 创建一个 src文件  src文件下 生成index.html 和index.js文件
安装iquery
npm install jquery --save (-S)  
安装到dependencies 这个文件是 开发 、发布都需要的依赖
-D 是安装到 devDependencies  这个是开发(生产)环境需要的依赖 上线后不再需要

安装 webpack

npm install webpack@5.42.1 webpack-cli@4.10.0 --save-dev (-D) 

配置 webpack

现在项目根目录新建一个webpack.config.js 文件
在这个文件里面 默认导出一个 webpack 配置对象
// path  是node的一个模块  需要先引入 
const path = require('path')
// '这里要用 node.js 默认的导出方式'
module.exports = {
    // development 开发(编译速度快,不压缩混淆)  production 发布(压缩混淆,速度慢)
    mode:"development" ,
    // __dirname 是当前文件的绝对路径  这里的路径必须是绝对路径 所以用了__dirname

    entry: path.join(__diename,./src/index.js) // 定义需要打包编译的入口文件
    output: {
        path: path.join(__dirname.'./dist'),  // 输出的打包好的文件路径
        filename:"bundle.js"  // 输出的打包好的文件名称
    },
    devServer: {
        open: true, // 首次打包 后默认自动打开浏览器
        // 定义的项目端口号  默认8080
        port: 80, // 这里用的是数字类型, 在http协议中 如果端口号是 80可以默认省略
        // 定义的项目启动地址
        host: "127.0.0.1" // 默认localhost
	},
}


安装 webpack-dev-server 来实时打版 编译

npm install webpack-dev-server@3.11.2 -D

pack.json 文件 配置编译命令 在webpack 后面追加一个serve 参数 再次执行即可
eg:
{
  "name": "change-rows-color",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack serve" //这里追加的 参数
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "jquery": "^3.6.3"
  },
  "devDependencies": {
    "webpack": "^5.42.1",
    "webpack-cli": "^4.10.0",
    "webpack-dev-server": "^3.11.2"
  }
}

这个插件会在项目根目录 内存里面存打版后一个 index.js  不会在目录里面显示 但是实际存在 能在项目根目录下 增加上文件地址 直接打开查看

安装 html-webpack-plugin 插件来实现html的实时刷新

 npm install html-webpack-plugin@5.3.2 --save-dev
 
 配置
 
 // 1、导入 html-webpack-plugin这个插件,得到这个插件的构造函数
const HtmlPlugin = require('html-webpack-plugin')
// 2、new 一个构造函数 创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
    // 指定要复制那个页面
    template: "./src/index.html",
    // 指定复制出来的文件名和路径
    filename:"./index.html"
})


最后在webpack 的配置对象上注册   
    plugins:[htmlPlugin] ,// 插件的数组,将来webpack在运行时 会加载并调用这些插件
    
    eg:
    const path = require('path')
// 1、导入 html-webpack-plugin这个插件,得到这个插件的构造函数
const HtmlPlugin = require('html-webpack-plugin')
// 2、new 一个构造函数 创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
    // 指定要复制那个页面
    template: "./src/index.html",
    // 指定复制出来的文件名和路径
    filename:"./index.html"
})
// 使用node.js中的默认导出语法到处一个webpack 配置对象
module.exports = {
    mode: 'development', // development 开发  production 发布
    output: {
        path: path.join(__dirname, './dist'),
        filename:"bundle.js"
    },
    entry: path.join(__dirname, './src/index123.js'),
    plugins:[htmlPlugin] ,// 插件的数组,将来webpack在运行时 会加载并调用这些插件
    devServer: {
        open: true, // 首次打包 后默认自动打开浏览器
        port: 80, // 在http协议中 如果端口号是 80可以默认省略
        host:"127.0.0.1"
    }
}


插件原理 是在 项目根目录下生成一个虚拟的 index.html 。因为在浏览器中 文件下有index.html 当打开这个目录地址时  会默认展示这个 index.html 。 咱们项目规范化又要求 页面文件要放在 src 文件夹下  所以浏览器进入项目根目录看不到想要展示的项目根页面。 这里用html-webpack-plugin 这个插件来解决这个问题
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值