首页 > 其他分享 >webpack

webpack

时间:2023-10-17 09:33:23浏览次数:48  
标签:文件 index js webpack loader 打包

一 基础概念
Webpack 是什么?
答:现代javascript构建工具,静态资源打包工具
什么叫构建 ? 构建就是把我们在开发环境写的代码,转换成生产环境的代码。构建过程应该包括 预编译、语法检查、词法检查、依赖处理、文件合并、文件压缩、单元测试、版本管理等

Vite 利用 浏览器 支持ES module
二 核心概念 (二八原则)

  1. entry 入口文件,可以是一个或者多个。表示从这个入口文件开始资源整合,形成一个完整的静态资源引用图。
    entry: {
    index: ['babel-polyfill', path.join(__dirname, '../src/index.tsx')],
    },

  2. output 出口文件 ,表示打包出来的bundle 文件输出到哪里,默认是在 ./dist 目录下
    //filename 指列在 entry 中,打包后输出的文件的名称。
    //chunkFilename 指未列在 entry 中,却又需要被打包出来的文件的名称
    output: {
    filename: '[name].[contenthash].js',
    publicPath: 'https://assets.mockplus.cn/cc/idoc/', // 配置为CDN地址
    chunkFilename: '[name].[contenthash].js',
    },


  1. loader 模块转化工具,默认webpack 只能处理js 和 json文件。loader 让 webpack 能够去处理其他类型的文件,并将它们转换为有效 模块,以供应用程序使用,以及被添加到依赖图中。
    我们可以把 loader 理解为是一个转换器,负责把某种文件格式的内容转换成 webpack 可以支持打包的模块。

    ile-loader : 处理js中 使用 require 动态加载资源文件(图片、文本等等资源,他会转化为一个内存地址提供出来,有点类似 URL.createObjectUrl)
    Url-loader:
    file-loader: 将文件打包到输出路径,并将打包后的路径返回。 url-loader:文件大于limit设置的值(单位为字节)时,和file-loader打包的方式一样。但如果文件小于limit设置的值时,不会将文件打包到输出路径,而是将文件内容转成base64的字符串放在js文件中。

'cache-loader' :放在最前面
'thread-loader':放在最后面(多线程打包)

module: {
rules: [
{
test: /.tsx?$/, // 哪些文件能够被匹配上
exclude: /(node_modules|dist)/, // 排除某些文件
use: [ // 使用loader插件进行处理,顺序是 从后到前
{
loader: 'babel-loader',
options: {
cacheDirectory: true,
},
},
{
loader: 'ts-loader',
options: {
transpileOnly: true,
configFile: 'tsconfig.json',
},
},
],
}
]
}

  1. Plugin 插件 ,loader 用于转换某些类型的模块,而插件则可以用于执行范围更广的任务
    包括:打包优化,资源管理,注入环境变量 等

// html-webpack-plugin 为应用程序生成一个 HTML 文件,并自动将生成的所有 bundle 注入到此文件中。
// 在模版html文件中可以通过 htmlWebpackPlugin.options.lang 来获取对应传递的属性值
plugins: [new HtmlWebpackPlugin({
template: './src/index.html' ,
title: '墨客',
lang:'zh-cn'
})],
// 并且在 模版html文件中,使用类似模版语法,可以动态加载某些标签

<title><%= htmlWebpackPlugin.options.title %></title>

<% if (htmlWebpackPlugin.options.test) { %>

<%} %>

  1. mode 模式 ,development/ production 。默认是 production ,有 tree-shake,js代码压缩等自带的优化
    Loader
    Babel-loader - 处理ts文件,js文件 (高版本->低版本)
    Sass-loader -> postcss-loader -> css-loader - (style-loader) (css压缩.loader)
    File-loader 将文件打包
    Devtool

Dev-server


学习目标

  1. Webpack 的基本概念,构建工具,打包工具,api,用法等
  2. Idoc 项目打包文件-代码拆分 splite-chunk。 优化初始化白屏加载速度
  3. 将index.js 以及 第三方包拆出来
  4. 画板和单页 实现单独拆分
  5. zip.worker.ts 进行拆分,以及其他的基础包进行拆分
  6. dev-server 环境 , 构建和 热更新速度 优化
  7. 自定义 loader、plugins 开发小工具。 (fiture 开发的 es-lint,代码检查工具)

标签:文件,index,js,webpack,loader,打包
From: https://www.cnblogs.com/honkerzh/p/17768929.html

相关文章

  • webpack模块打包工具
    yarn包管理器快速、可靠、安全的依赖管理工具。和npm类似,都是包管理工具,可以用于下载包,就是比npm快中文官网地址:https://yarn.bootcss.com/下载yarn下载地址:https://yarn.bootcss.com/docs/install/#windows-stablewindows-软件包(在笔记文件夹里)mac-......
  • vue webpack 报错处理
    1.vue-cli3中console.log报错:ModuleWarning(from./node_modules/eslint-loader/index.js):error:Unexpectedconsolestatement(no-console)at(1).原因:使用ESLint检查代码质量是进行提示的.(2).解决:window.console.log(res);2.图片引入:{id:1,src:require(......
  • JS加密/解密之webpack打包代码逆向
    Webpack是一个强大的打包工具,能够将多个文件打包成一个或多个最终的文件。然而,将已经经过打包的代码还原回原始源代码并不是一件直接的事情,因为webpack打包的过程通常会对代码进行压缩、混淆和优化,丢失了部分变量名和代码结构的信息。因此,完全还原打包前的源码可能并不现实。但......
  • HtmlWebpackPlugin作用
    当我们更改了我们的一个entry入口起点的名称,甚至添加了一个新的入口,会发生什么?会在构建时重新命名生成的bundle,但是我们的 index.html 文件仍然引用旧的名称。此时就可以用 HtmlWebpackPlugin 来解决这个问题。在我们构建之前,虽然在 dist/ 文件夹我们已经有了 index.ht......
  • 00webpack之前期准备
    1环境准备1.1安装git(可选)Git官网下载地址Git安装步骤1.2安装nodeNode官网下载地址安装完成后,查看node版本node-vnpm是随同node一起安装的包管理工具,安装完node以后,就可以直接使用了安装淘宝镜像:使用cnpm命令(可选)npminstall-gcnpm--registry=https://......
  • 01webpack基础知识
    1概述1.1什么是webpack1、webpack是一种前端资源构建工具,一个静态模块打包器(modulebundler)。在webpack看来,前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)2、webpack是一个前......
  • 使用 Webpack 的 require.context 来获取组件
    代码constrequireComponent=require.context('@/views',//组件文件夹的相对路径true,//是否查找子文件夹/\.vue$///匹配组件文件的正则表达式)输出console.log(requireComponent.keys())原理require.context在生产环境中也能获......
  • webpack配置删除console
    1.删除所有的console.logvue.config.js:module.exports=defineConfig({configureWebpack:(config)=>{//删除consoleconfig.optimization.minimizer[0].options.minimizer.options.compress=Object.assign(config.optimization.minimizer[0]......
  • webpack - 构建支持TypeScript的React应用
    1.初始化package.json创建项目文件夹mkdirwebpack-react-tscdwebpack-react-ts初始化项目package.jsonyarninit-y{"name":"webpack-react-ts","version":"1.0.0","main":"index.js","license&......
  • webpack打包丢失样式的问题
    背景在我部署好代码后,另一个同事就去访问页面查看,结果发现样式有问题,问我是不是代码没更新到?我反复去看了下时间和文件,证明代码是最新的了。但后来对比了下页面和本地的样式,发现确实跟本地代码对不上。分析过程一开始还以为是部署的代码有问题,就到服务器查看,确实是丢失了样式......