免费网站建设教程视频建设营销网站的目的

pingmian/2026/1/20 7:18:24/文章来源:
免费网站建设教程视频,建设营销网站的目的,网站联系方式修改,网站设计顺德前端打包工具之Webpack5 什么是打包工具打包工具的作用常见的打包工具一、Webpack1、什么是[webpack](https://webpack.docschina.org/concepts/)2、webpack本身的功能是有限的3、webpack基本使用#xff1a;基于本身功能只解析JS资源4、webpack配置4.1、entry#xff08;入口… 前端打包工具之Webpack5 什么是打包工具打包工具的作用常见的打包工具一、Webpack1、什么是[webpack](https://webpack.docschina.org/concepts/)2、webpack本身的功能是有限的3、webpack基本使用基于本身功能只解析JS资源4、webpack配置4.1、entry入口指示webpack从哪个文件开始打包4.2、output出口指示webpack打包完的文件输出到哪里、如何命名4.3、loader [加载器](https://webpack.docschina.org/concepts/loaders)webpack本身只能处理js、json资源其他资源需要借助loader4.4、plugins ([插件](https://webpack.docschina.org/api/plugins)) 扩展webpack功能4.5、mode ([模式](https://webpack.docschina.org/configuration/mode)) 开发、生产模式4.6、browser compatibility (浏览器兼容性)4.7、environment (环境): Webpack 5 运行于 Node.js v10.13.0 的版本 5、webpack提升打包构建速度5.1、热更新只针对开发模式5.2、oneOf配置项5.3、exclude配置项或者include配置项5.4、ESLint、babel添加缓存5.5、启动多线程打包5.6、减少代码体积5.7、减少文件中的babel辅助代码引入5.8、压缩静态资源图片 6、webpack配置代码 什么是打包工具 将浏览器无法运行的高级语法代码如es6、scss编译成浏览器能识别的JS、CSS等语法。 打包工具的作用 语法编辑压缩代码兼容性处理代码性能优化… 常见的打包工具 ViteWebpackparcel 一、Webpack 1、什么是webpack webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。它会以一个或多个文件作为打包的入口将整个项目所有文件编译组合成一个或者多个文件bundles输出。 webpack 开箱即用可以无需使用任何配置文件。然而webpack 会假定项目的入口起点为 src/index.js然后会在 dist/main.js 输出结果并且在生产环境开启压缩和优化 2、webpack本身的功能是有限的 webpack本身的功能是有限的 开发模式 仅能编译JS中的ES Model语法生产模式编译JS中的ES Model语法还能压缩JS代码 即是webpack本身只能处理JS编译其他编译和处理需要进一步的配置 3、webpack基本使用基于本身功能只解析JS资源 初始化package.json $ npm init -y下载依赖 cli $ npm i webpack webpack-cli -Dwebpack从4.0版本开始在安装时就需要安装webpack和webpack-cli这两个东西。1、webpack是打包代码时的核心内容2、webpack-cli是一个用来在命令行中运行webpack的工具 xxx-cli的主要功能就是处理命令行参数(如果你想使用 npx 来运行 webpack请确保你已经安装了 webpack-cli)npm run build - 执行node_modules/webpack文件 - 执行webpack-cli文件 - 执行cli.run() - 处理命令行参数。 执行webpack打包 // 开发环境 $ npx webpack ./app.js --modedevelopment // 生产环境 $ npx webpack ./app.js --modeproductionnpx webpack: 运行本地安装的webpack包(npx: 用于快速执行本地或远程的npm包) ./app.js 打包入口文件 –modeXXX打包模式 以上步骤默认打包的是JS代码CSS等其他代码的处理需要另行配置 4、webpack配置 npx webpack init: 根据项目需求快速生产webpack配置 4.1、entry入口指示webpack从哪个文件开始打包 默认src/index.js 4.2、output出口指示webpack打包完的文件输出到哪里、如何命名 4.3、loader 加载器webpack本身只能处理js、json资源其他资源需要借助loader webpack 只能理解 JavaScript 和 JSON 文件这是 webpack 开箱可用的自带能力。loader 让 webpack 能够去处理其他类型的文件并将它们转换为有效 模块以供应用程序使用以及被添加到依赖图中。 loader 的两个属性 test 属性识别出哪些文件会被转换。use属性定义出在进行转换时应该使用哪个 loader。 const path require(path);module.exports {output: {filename: my-first-webpack.bundle.js,},module: {// 嘿webpack 编译器当你碰到「在 require()/import 语句中被解析为 .txt 的路径」时在你对它打包之前先 use(使用) raw-loader 转换一下rules: [{ test: /\.txt$/, use: raw-loader }],}, };4.4、plugins (插件) 扩展webpack功能 想要使用一个插件你只需要 require() 它然后把它添加到 plugins 数组中。多数插件可以通过选项(option)自定义。你也可以在一个配置文件中因为不同目的而多次使用同一个插件这时需要通过使用 new 操作符来创建一个插件实例 const HtmlWebpackPlugin require(html-webpack-plugin); const webpack require(webpack); // 用于访问内置插件module.exports {module: {rules: [{ test: /\.txt$/, use: raw-loader }],},plugins: [new HtmlWebpackPlugin({ template: ./src/index.html })], };4.5、mode (模式) 开发、生产模式 4.6、browser compatibility (浏览器兼容性) Webpack 支持所有符合 ES5 标准 的浏览器不支持 IE8 及以下版本。webpack 的 import() 和 require.ensure() 需要 Promise。如果你想要支持旧版本浏览器在使用这些表达式之前还需要 提前加载 polyfill。 4.7、environment (环境): Webpack 5 运行于 Node.js v10.13.0 的版本 5、webpack提升打包构建速度 5.1、热更新只针对开发模式 // 生产模式下不需要devServer devServer: {host: 0.0.0.0,port: 3000,compress: true,// 默认为true: 提升开发模式的打包构建速度// 默认只支持css热更新 js的需要加载相应loaderhot: true, // 开启HRM 热更新 },5.2、oneOf配置项 // 加载器 帮助webpack识别 本身不能识别的资源 module: {// loader的配置rules: {// 避免找到了loader 还会继续遍历后面的loaderoneOf: [// 处理css资源{},// 处理图片资源{},// 处理其他资源{},// 将高阶JS语法处理成IE等旧浏览器能识别的JS语法{test: /\.js$/,// 排除哪些不需要处理的文件exclude: /(node_modules|bower_components)/,// 只加载一个loader 可以直接使用loader替换useloader: babel-loader,// 可以直接在项目中 新建babel配置文件(babel.config.js) 方便配置扩展// options: {// presets: [babel/preset-env]// }}]} },5.3、exclude配置项或者include配置项 exclude、include不能同时使用 {test: /\.js$/,// 排除哪些不需要处理的文件exclude: /(node_modules|bower_components)/,// include: path.resolve(__dirname, ../src),// 只加载一个loader 可以直接使用loader替换useloader: babel-loader,// 可以直接在项目中 新建babel配置文件(babel.config.js) 方便配置扩展// options: {// presets: [babel/preset-env]// } }5.4、ESLint、babel添加缓存 babel添加缓存 // 将高阶JS语法处理成IE等旧浏览器能识别的JS语法 {test: /\.js$/,// 排除哪些不需要处理的文件exclude: /(node_modules|bower_components)/,// 只加载一个loader 可以直接使用loader替换useloader: babel-loader,options: {// 可以直接在项目中 新建babel配置文件(babel.config.js) 方便配置扩展// presets: [babel/preset-env]cacheDirectory: true, // 开启babel缓存cacheCompression: false // 关闭缓存文件压缩} }ESLint 添加缓存 // 插件 plugins: [// ESLint检验new ESLintPlugin({// eslint 只检测src下面的文件context: path.resolve(__dirname, ../src),exclude: node_modules, // 默认值 node_modulescache: true, // 开启缓存cacheLocation: path.resolve(__dirname, ../node_modules/.cache/eslintcache)}), ],5.5、启动多线程打包 获取cpu核数 const os require(os) // 获取cpu核数 const threads os.cpus().length;babel操作开启多线程 # 安装thread-loader $ npm install --save-dev thread-loader// 将高阶JS语法处理成IE等旧浏览器能识别的JS语法 {test: /\.js$/,// 排除哪些不需要处理的文件exclude: /(node_modules|bower_components)/,use: [{loader: thread-loader,options: {workers: threads, // babel: 进程数量}},{loader: babel-loader,options: {// 可以直接在项目中 新建babel配置文件(babel.config.js) 方便配置扩展// presets: [babel/preset-env]cacheDirectory: true, // 开启babel缓存cacheCompression: false // 关闭缓存文件压缩}}] }ESLint开启多进程 plugins: [// ESLint检验new ESLintPlugin({// eslint 只检测src下面的文件context: path.resolve(__dirname, ../src),exclude: node_modules, // 默认值 node_modulescache: true, // 开启缓存cacheLocation: path.resolve(__dirname, ../node_modules/.cache/eslintcache),threads // 开启多进程}), ],压缩js开启多进程 const TerserWebpackPlugin require(terser-webpack-plugin) optimization: {// 压缩的操作minimizer: [// 压缩jsnew TerserWebpackPlugin({// 开启多进程parallel: threads,}),], },5.6、减少代码体积 Tree Shaking: 移除JS中没有使用上的代码。 生产环境下已经默认开启了 5.7、减少文件中的babel辅助代码引入 {test: /\.js$/,// 排除哪些不需要处理的文件exclude: /(node_modules|bower_components)/,use: [{loader: thread-loader,options: {workers: threads, // babel: 进程数量}},{loader: babel-loader,options: {// 可以直接在项目中 新建babel配置文件(babel.config.js) 方便配置扩展// presets: [babel/preset-env]cacheDirectory: true, // 开启babel缓存cacheCompression: false, // 关闭缓存文件压缩plugins: [babel/plugin-transform-runtime] // 减少代码体积避免不必要的babel的辅助代码注入}}] }5.8、压缩静态资源图片 图片压缩 6、webpack配置代码 const path require(path) const os require(os) const ESLintPlugin require(eslint-webpack-plugin) const HtmlWebpackPlugin require(html-webpack-plugin) const MiniCssExtractPlugin require(mini-css-extract-plugin) const CssMinimizerPlugin require(css-minimizer-webpack-plugin) const nodeExternals require(webpack-node-externals) const TerserWebpackPlugin require(terser-webpack-plugin) // 获取cpu核数 const threads os.cpus().length; // 生产模式下进行项目优化 优化打包速度 优化运行性能module.exports {target: node, // ignore built-in modules like path, fs, etc.externals: [nodeExternals()], // 排除Node.js核心模块// 项目打包入口 相对路径entry: ./src/app.js,// 模式mode: production,// 包含行和列的映射 打包速度慢// 开发模式 cheap-module-source-mapdevtool: source-map, // 将编译后的代码映射回原始源代码// 打包出口 绝对路径output: {// __dirname: node变量 当前文件的文件夹目录path: path.resolve(__dirname, ../dist), // 打包后所有文件的输出路径filename: static/js/[name].js, // 入口文件打包后的输出路径// 给打包输出的其他文件命名 比如import动态导入的文件// 结合webpack 魔法命名 import(/* webpackChunkName: app */ ./src/app.js).then((){})chunkFilename: static/js/[name].chunk.js,// 图片、字体等通过type: asset 处理资源命名方式 替换掉generatorassetModuleFilename: static/media/[hash:10][ext][query],clean: true, // 自动清空path目录内容再进行打包publicPath: /assets/,},// 加载器 帮助webpack识别 本身不能识别的资源module: {// loader的配置rules: {// 避免找到了loader 还会继续遍历后面的loaderoneOf: [// 处理css资源{test: /\.s[ac]ss$/,// use的加载顺序 从右向左use: [// style-loader, // 将js中的css通过创建style标签添加到html文件中MiniCssExtractPlugin.loader, // 将css资源抽离成css文件 通过link引入避免了加载js的阻塞css-loader, // 将css资源编译成commonjs模块到js中// sass兼容处理// 需要在package 添加需要兼容到哪些浏览器// browserslist: [// last 2 version, // 所有的浏览器取最新的两个版本// 1%, // 覆盖99% 的浏览器// not dead// ]{loader: postcss-loader,options: {postcssOptions: {plugins: [[postcss-preset-env,{// 其他选项},],],},},},sass-loader // 将sass编译成css],},// 处理图片资源{// webpack5内置了处理图片的loadertest: /\.(png|jpe?g|gif|webp|svg)$/,type: asset,parser: {dataUrlCondition: {// 将小于10kb的图片打包成base64// 优点 较少请求数量// 缺点 图片体积变大所以一般都转的小体积的图片maxSize: 10 * 1024 // 10kb}},// 图片打包后的目录// generator: {// // hash:10 取hash前10个字符// filename: static/images/[hash:10][ext][query]// }},// 处理其他资源{test: /\.(ttf|woff2?|mp3|mp4|avi)$/,type: asset/resource, // 原样打包到dist中// generator: {// // hash:10 取hash前10个字符// filename: static/media/[hash:10][ext][query]// }},// 将高阶JS语法处理成IE等旧浏览器能识别的JS语法// babel-loader 不能处理async、promise等ES的语法 需要借助core-js// core-js 是专门做ES6以上API的polyfill补丁// 在babel.config.js// module.exports {// // 智能预设 能够编译ES6语法// presets: [// babel/preset-env,// {// useBuiltIns: usage, // 按需自动加载core-js对ES6的兼容性处理// corejs: 3 // core-js的版本号// }// ]// }{test: /\.js$/,// 排除哪些不需要处理的文件exclude: /(node_modules|bower_components)/,// include: path.resolve(__dirname, ../src),// 只加载一个loader 可以直接使用loader替换useuse: [{loader: thread-loader,options: {workers: threads, // babel: 进程数量}},{loader: babel-loader,options: {// 可以直接在项目中 新建babel配置文件(babel.config.js) 方便配置扩展// presets: [babel/preset-env]cacheDirectory: true, // 开启babel缓存cacheCompression: false, // 关闭缓存文件压缩plugins: [babel/plugin-transform-runtime] // 减少代码体积避免不必要的babel的辅助代码注入}}]}]}},// 插件plugins: [// ESLint检验new ESLintPlugin({// eslint 只检测src下面的文件context: path.resolve(__dirname, ../src),exclude: node_modules,threads}),// html文件自动引入依赖资源new HtmlWebpackPlugin({// 模板 以public/index.html 文件作为模板创建打包后新的html文件// 新的html文件特点1、结构和打包之前的一致 2、自动引入打包输出的资源template: path.resolve(__dirname, ../public/index.html)}),// 单独打包出css文件new MiniCssExtractPlugin({filename: static/css/[name].[contenthash:10].css,chunkFilename: static/css/[name].chunk.[contenthash:10].css}),],optimization: {// 压缩的操作minimizer: [// css压缩// 开启生产模式 html、js会自动压缩的new CssMinimizerPlugin(),// 压缩jsnew TerserWebpackPlugin({// 开启多进程parallel: threads,}),],// 代码分割配置splitChunks: {chunks: all},// 保证引用文件不变// 只变runtime和map里面的文件runtimeChunk: {name: (entrypoint) runtime-${entrypoint.name}.js}},// 开发服务器: 不会输出资源到dist中的 是在内存中进行编译打包的// src下的代码更改后自动打包/自动编译代码// 生产模式下不需要devServerdevServer: {host: 0.0.0.0,port: 3000,compress: true,// 默认为true: 提升开发模式的打包构建速度// 默认只支持css热更新 js的需要加载相应loaderhot: true, // 开启HRM 热更新}, }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成都网站优化排名推广百度的网站建设代码

文章目录 管道 概念 要点 举例 环境变量 查看 修改 常用环境变量 常用命令 系统状况 文件权限 文件检索 查看文件内容 用户相关 其他工具 安装软件 附录 Linux权限 本节课讲解的是管道,环境变量,以及常用命令 管道 概念 管道类似文…

网站建设后期维护方案做网站要学什么

设计模式设计出来就是为了让后期维护代码更容易,增加代码的强壮性等好处! 策略模式 自己的理解:定义一个算法族,分别分装起来,使他们能互相替换且算法的变换与使用算法的对象相互独立。简单来说是将变化的和不变得分离,对接口编程…

网站安全建设方案前言大沥网站建设

文|萧箫 发自 凹非寺源|量子位要说Transformer的核心亮点,当然是注意力机制了。但现在,一篇新研究却突然提出了带点火药味的观点:注意力机制对于预训练Transformer有多重要,这事儿得打个问号。研究人员来自…

怎么做360网站排名二手交易网站开发方式

android交叉编译pidstat iostat mpstat 文章目录 android交叉编译pidstat iostat mpstat编译环境编译工具下载 编译过程编译环境系统环境NDK版本的选择 源码下载只编译简单的pidstat mpstat iostat编译编译脚本问题 使用技术支持 编译环境 编译工具下载 参考这个:…

建设教育协会培训网站网站开发的教学课程

语雀原文链接 文章目录 1、计算机组成1-1、主板1-2、接口卡1-3、存储器(内存) 2、存储器2-1、存储器的重要性2-2、物理存储器2-3、逻辑存储器2-4、内存地址空间的分段2-5、存储单元2-6、指令和数据 3、总线3-1、三类总线3-2、CPU读数据例子3-3、CPU写数…

怎么做淘宝客网站网站开发php制作

Java语言中的访问权限修饰符有4种,但是仅有3个关键字,因为不写访问权限,在Java中被称为默认权限,或同包权限,本文中以(default)代替。下面按照权限从小到大的顺序对4中访问权限分别介绍。class我个人,我有很…

做网站百度新闻源多店铺商城系统开发

在了解了窗口函数实现原理 spark、hive中窗口函数实现原理复盘 和 sparksql比hivesql优化的点(窗口函数)之后,今天又撸了一遍hive sql 中窗口函数的源码实现,写个笔记记录一下。简单来说,窗口查询有两个步骤:将记录分割成多个分区…

网站建设小结企业网站内页设计

2023-11-30每日一题 一、题目编号 1657. 确定两个字符串是否接近二、题目链接 点击跳转到题目位置 三、题目描述 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如&…

常州金坛网站建设wordpress能放视频播放器

树具有灵活性,并且存在许多不同的树的应用,但是就树本身而言有一定的局限性,树只能表示层次关系,比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中,数据元素之间的关系是任意的。 一、图…

品牌设计课程哈尔滨关键词优化平台

来源:内核月谈, 原文链接:http://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html本文中若有任何疏漏错误,责任在于编译者。有任何建议和意见,请回复内核月谈微信公众号,或通过 caspar at linux.…

网站设计的一般步骤是什么?前端可以做网站吗

前言 本文将会向你介绍哈希概念,哈希方法,如何解决哈希冲突,以及闭散列与开散列的模拟实现 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经…

中文网站建设中模板可以做图的网站

澳门服务器是指位于澳门的服务器,具有以下特点: 地理位置优越:澳门位于珠江口西侧,靠近香港,是中国内地与香港、澳门地区重要的交通枢纽。澳门服务器因此在访问速度和延迟方面表现出色。 稳定的网络连接:澳门拥有完善的网络基础设施,包括高速稳定的互联网连接和先进的通信技术…

asp与sql做网站让人做网站需要注意什么

小波分析是近30年来发展起来的数学分支,是Fourier分析划时代发展的结果,由法国工程师Morlet首先提出,后广泛应用于信号处理、图像处理与分析、地震勘探、故障诊断、自动控制等领域,小波就是小的波形,所谓“小”是指它具…

网站推广工具有企业服务包括哪些

linux内核的裁剪和移植具体都在这个网址里面。https://blog.csdn.net/xie0812/article/details/10816059https://blog.csdn.net/xie0812/article/details/10821779转载于:https://blog.51cto.com/13401435/2145947

如何选择网站建设无极网络

看题: 我们令f[i][j]为前i个物品放满容量为j的背包的最大价值。 f[i][j]max(f[i-1][j],f[i-1][j-c[i]]w[i]); 我们开始全副成负无穷。f[0][0]0;最后循环最后一行求max; 负无穷:0xc0c0c0c0;正无穷:0x3f3f3f3f 下面是v12,n6的图示&#xff…

网站建设的要求有哪些泉州建设部网站

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.FlexViewer简介 FlexViewer框架为Esri提供的可以高效开发基于WEB的地理信息应用系统的一种完全免费的应用程序框架。目前有两种版本,一种…

网站建设视频下载营销网络分布图

一、分析 分析过程网上有很多,这里只说个大概,主要是提供golang源码 请求网站,发现前两次请求都会返回521,第三次请求成功,说明前两次请求肯定是干了什么事情;使用接口请求工具模拟请求分析该过程 使用postman工具请求 a. 第一次请求会在响应头返回jsluid,返回内容中拼接…

自己的网站是什么样子的塘厦镇做网站

导读: 除了语文数学这种常规科目,最让家长们焦虑的就是英语。现在的孩子,英语启蒙都很早,但是对英语的兴趣总是开始还可以,越往后越没动力和兴趣,稍微遇到点挫折就不想坚持了。钱也花了,好老师也…

遵义做什么网站好青海wap网站建设比较好

前言 “绿水青山就是金山银山”,水利环境一直是国际生态部门关注的重点。随着经济的发展、针对水利环境的监管也日趋严格,尤其是重点河、湖水系、水源地、城市内河等成为重点监管对象,监管力度也愈来愈严格,监测布点密度不断加大。…

搭建网站首页做长尾词优化去哪些网站

Spring帝国 Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验。在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词,那么Sp…