webpack


Webpack

作用域问题:

立即执行函数 : var result = (function(){})()

如何实现代码的拆分 :

// 第一个文件夹
//写入方法
module.exports = {}  //暴露..
// 第二个文件夹
require()//引入第一个文件夹的自定义模块

如何让浏览器支持模块:

//方法模块
define([依赖的模块],function() {
	//暴露的接口
})
// 要引入的文件   main.js
require([引入上面的方法模块],function(参数是上面方法模块的方法名) {
    
})
//在HTML文件中,引入第三方文件require.js data-main属性提供了一个入口,写入第二个文件的地址]()

==============================================

//安装(本地 webpack)
npm install webpack webpack-cli
function helloword() {
    
}
export default helloworld       //模块导出
import helloword form "./url"   //模块导入
//pwd  绝对路径
//最后在终端上 npx webpack    会出现一个main.js 文件

webpack --stats detailed 查看打包详情

自定义模块

通过配置文件自定义模块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFcs254i-1647736768399)(C:\Users\Lenovo\Desktop\typora\img\config.png)]

//通过配置文件自定义模块

//1. 创建 webpack.config.js 文件
//2. 引入 path 模块
const path = require('path')
//3. 
module.exports = {
		//配置入口
    entry: './src/index.js' ,

    output: {
    //指定输出文件的文件名
        filename : 'bundle.js' ,
    //指定文件的输出路径
        path: path.resolve(__dirname, './dist')
    } ,
        
    mode: 'none'
}
//4. html文件里  引入bundle.js文件
//5. 终端:
//       npx webpack       dist文件都是通过 config文件配置而成的

自动引入资源

如何使用 HtmlWebpackPlugin

实现自动生成 HTML 入口文件和引入功能

//1. 安装 
npm install html-webpack-plugin
//2. 自定义一个模块
//在  config 文件里添加如下代码 
 const HtmlWebpackPlugin = require('html-webpack-plugin')
 plugins: [
        //第一个插件
        new HtmlWebpackPlugin({
            //模板
            Template: './index.html',
            //输出的文件的文件名
            filename: 'app.html',
            //标签的位置
            inject: 'body'
        })

    ]
//3. npx webpack
//4. dist 文件里会出现一个app.html
//清理 dist
//output 中添加
clean: true
如何使用 webpack-dev-server
//创建文件夹
//2. config 文件
mode: 'development'
//3. 使用 source-map 
//4. 终端 npx webpack --watch  实现自动编译
//5. 安装 webpack-dev-server 插件  实现自动更新无需是手动刷新 
devServer: {
    static: './dist'
}
6. npx webpack-dev-server  点Loopback后的网址

资源模块

Resouce 资源

发送一个单独的文件,并导出 URL

  //在config文件中
module: {
        //规则
        rules: [
            {
                // 加载的文件类型
                test: /\.png$/, // $ 表示以png作为扩展名的文件
                //资源类型
                type: 'asset/resource',
                //自定义图片的名称与存放路径
                generator: {
                     //    文件夹  根据文件内容生成哈希字符串   扩展名 
                    filename: 'images/[contenthash][ext]'
                }
            }
        ]
    }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZDzR4ai-1647736768401)(C:\Users\Lenovo\Desktop\typora\img\resource.png)]

inline 资源
source 资源

用于导出资源的源代码

通用资源类型

在导出一个 data URL 和发送一个单独的文件之间自动选择

默认情况下,当文件大小小于8k时,只会生成一个链接

loader

loader

style-loader 加载css

less

less-loader 引入css预处理工具

mini-css-extract-plugin -D 抽离 压缩 C

SS

csv-loader,xml-loader 加载数据

data.xml 会转化为一个对象

data.csv 会转换为一个数组

babel-loader

npm install babel-loader @babel/core @babel/preset-env -D

@babel/runtime

@babel/plugin-transform-runtime

代码分离

多入口
防止重复
动态导入
懒加载

缓存

配置输出文件的文件名

改变filename值

缓存第三方库

将js 文件放到一个文件夹中

公共路径

开发环境

npx webpack --env production

npx webpack --env production --env goal=local env.goal

terser-webpack-plugin 压缩插件

npm脚本配置

"scripts": {
    "start": "webpack serve -c ./config/webpack.config.dev.js",
    "build": "webpack -c ./config/webpack.config.prod.js"
  }

合并配置文件

npm install webpack-merge -D

公共路径 环境变量 拆分环境变量 npm脚本 提取公共配置 合并配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DXrGXbs6-1647736768401)(C:\Users\Lenovo\Desktop\typora\img\source-map.png)]

npm install webpack webpack-cli webpack-dev-server html-webpack-plugin -D

npm install webpack webpack-cli webpack-dev-server html-webpack-plugin -D

devServer

没学好

模块热替换与热加载

module.hot在config文件的devserver 中 设置的值为 true

if(module.hot) {
    //当 ./input.js 发生变化时,accept() 函数执行
    module.hot.accept('./input.js', () => {

    })

Eslint

安装插件,帮助查找问题

npx eslint ./src

        //手工关闭覆盖层
        client: {
            overlay: false,
        }
   //检查错误的配置
            {
                test: /\.js$/,
                use: ['babel-loader', 'exlint-loader'],
            }

2.1.5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿选不出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值