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

网站的制作哪家好廊坊seo推广公司

网站的制作哪家好,廊坊seo推广公司,在城乡建设委员会的网站江西,南阳教育论坛网站建设webpack基础 webpack 处理css兼容问题webpack 处理css闪屏问题webpack 优化压缩css代码总结webpack 两种开发模式webpack 基本的功能webpack配置 5概念devServer 生产环境webpack配置实例开发环境webpack配置实例webpack优化 webpack 处理css兼容问题 下载loader 引入 package…

webpack基础

    • webpack 处理css兼容问题
    • webpack 处理css闪屏问题
    • webpack 优化压缩css代码
      • 总结
        • webpack 两种开发模式
        • webpack 基本的功能
        • webpack配置 5概念+devServer
    • 生产环境webpack配置实例
    • 开发环境webpack配置实例
    • webpack优化

webpack 处理css兼容问题

下载loader 引入 package.json修改

  1. postcss-loader 可以处理css兼容问题 需要在css-loader 之后——其他cssloader 之前 引入
  2. package.json 添加数组 browserlist:[“ie>=8”,“>1%”,“not dead”] 百分之99 还存在的浏览器 大于等于ie8

webpack 处理css闪屏问题

MiniCssExtractPlugin 使用插件的loader
将css文件以单文件link方式引入 避免出现闪屏现象

  1. 不使用style-loader
  2. 使用MiniCssExtractPlugin.loader

webpack 优化压缩css代码

CssMinimizerWebpackPlugin

  1. 下载安装 引入webpack 配置文件 直接在plugin中new CssMinimizerWebpackPlugin()
  2. 提示:默认生产环境下 js html 会自动压缩不需要额外的配置

总结

webpack 两种开发模式

  1. 开发模式:代码能编译自动化运行 devServer 不用输出
  2. 生产模式:代码编译优化输出

webpack 基本的功能

  1. 开发模式:可以编译 es module 语法
  2. 生产模式:可以编译 es module 语法 压缩js代码

webpack配置 5概念+devServer

entry、output、loader、plugins、mode 、devServer

生产环境webpack配置实例

const path = require("path"); //node.js核心模块,专门用来处理路径问题
const os = require("os"); // Node.js的os模块是一个内置模块,用于提供与操作系统相关的功能。
const ESLintPlugin = require("eslint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin"); // 将css文件以单文件link方式引入 避免出现闪屏现象const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); //css压缩
const TerserWebpackPlugin = require("terser-webpack-plugin"); //js压缩
const ImageMinimizerPlugin = require("image-minimizer-webpack-plugin"); //图片压缩
const PreloadWebpackPlugin = require("@vue/preload-webpack-plugin"); //预加载当前页的资源const threads = os.cpus().length;function getStyleLoader(pre) {return [// 将 JS 字符串生成为 style 节点//"style-loader",//不使用style-loader  下面的这个会生成单个css文件 link引入 避免出现闪屏现象MiniCssExtractPlugin.loader,// 将 CSS 转化成 CommonJS 模块"css-loader",// postcss-loader 能解决大部分css兼容问题{loader: "postcss-loader",options: {postcssOptions: {plugins: [["postcss-preset-env",{// 其他选项},],],},},},pre,].filter(Boolean);//filter 过滤掉undefined null 等返回false的数组元素
}//启动命令  npx webpack --config ./config/webpack.prod.js
// 生产模式 不需要devServer
module.exports = {// 入口entry: "./src/main.js", //相对路径// 输出output: {// 文件的输出路径// __dirname node.js的变量,代表当前文件的文件夹目录path: path.resolve(__dirname, "../dist"), // 绝对路径// 入口文件打包的文件名// filename: "js/main.js",  下面的命名方式,兼容多入口filename: "js/[name].js",// 图片、字体等通过type:asset处理资源命名 可以统一定义在此处,下面就不用写了//assetModuleFilename:"media/[hash][ext][query]"// code split给打包输出的其他名字命名chunkFilename: "js/[name].chunk.js",clean: true, //自动清理上次打包的内容},//加载器module: {rules: [// loader的配置{oneOf: [// style-loader 将js中的css通过创建style标签添加html文件中生效// css-loader  将css资源编译成common.js的模块到js中{ test: /\.css$/, use: getStyleLoader() }, // use执行顺序 从右到左、从下到上{ test: /\.ts$/, use: "ts-loader" },{test: /\.s[ac]ss$/i,use: getStyleLoader("sass-loader"),},{test: /\.(png|jpe?g|gif|webp|svg)$/,type: "asset",parser: {dataUrlCondition: {// 不需要下载 loader webpack5内置处理// 小于10kb 的图片转base64// 优点 减少请求的数量  缺点 体积会大一点点maxSize: 10 * 1024, // 10kb},},generator: {//打包后指定图片路径// [hash:10] hash值取前十位filename: "imgs/[hash][ext][query]",},},{test: /\.(ttf|woff2?|mp3|mp4)$/,type: "asset/resource", //转base64 用assetgenerator: {//打包后指定文字路径filename: "media/[hash][ext][query]",},},{test: /\.js$/,exclude: /(node_modules|bower_components)/,use: [{loader: "thread-loader", // 开启多进程options: {works: threads, // 进程数},},{loader: "babel-loader",// 下面对于babel的预设处理 可以写到babel.config.js 文件中 也可以在此处options: {//  presets: ["@babel/preset-env"],cacheDirectory: true, // 开启babel缓存cacheCompression: false, //  关闭缓存文件压缩plugins: ["@babel/plugin-transform-runtime"], //减少代码体积},},],},],},],},//插件// plugin的配置plugins: [new ESLintPlugin({context: path.resolve(__dirname, "../src"), //检查文件exclude: "node_modules", //默认值cache: true, // 开启缓存cacheLocation: path.resolve(__dirname,"../node_modules/.cache/eslintcache"),threads, //开启多进程}),new HtmlWebpackPlugin({//模版,以public/index.html文件为模版创建新的html文件//新的html文件特点:1结构和原来一致,2.自动引入打包输出的资源template: path.resolve(__dirname, "../public/index.html"),}),new PreloadWebpackPlugin({rel: "preload", //option:prefetchas: "scrpit", //option:stylesheet/icon/next}),new MiniCssExtractPlugin({filename: "css/[name].[contenthash:10].css",chunkFilename: "css/[name].chunk.[contenthash:10].css",}),new ImageMinimizerPlugin({test: /\.(jpe?g|png|gif|svg)$/i, // 匹配要压缩的图像文件类型的正则表达式exclude: /node_modules/, // 排除哪些文件夹下的图像不参与压缩minimizer: {implementation: ImageMinimizerPlugin.imageminGenerate,options: {plugins: [["gifsicle", { interlaced: true }], // 使用gifsicle插件压缩gif图像["jpegtran", { progressive: true }], // 使用jpegtran插件压缩jpg图像["optipng", { optimizationLevel: 5 }], // 使用optipng插件压缩png图像["svgo",{plugins: ["preset-default", // 使用svgo的默认插件集合压缩svg图像"prefixIds", // 为svg元素添加唯一前缀,防止id冲突{name: "sortAttrs",params: {xminsOrder: "alphabetical", // 按字母顺序排序svg属性},},],},],],},},}),// 下面两个插件可以放在这个位置// new CssMinimizerPlugin(),// new TerserWebpackPlugin({//     parallel:threads  //开启多进程并设置进程数// })],// 也可以放在这个位置 webp5 推荐压缩插件放在下面optimization: {minimizer: [//压缩cssnew CssMinimizerPlugin(),// 压缩jsnew TerserWebpackPlugin({parallel: threads, //开启多进程并设置进程数}),],splitChunks: {chunks: "all",//其他都用默认值},//当缓存文件发生变化,一般所有都更新,加上这个只更新修改的文件,其他缓存文件不变runtimeChunk: {name: (entrypoint) => `runtime~${entrypoint.name}.js`,},},//模式mode: "production",devtool: "source-map",
};

开发环境webpack配置实例

const path = require("path"); //node.js核心模块,专门用来处理路径问题
const os = require("os");const ESLintPlugin = require("eslint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin"); //编译时生成index.html
const MiniCssExtractPlugin = require("mini-css-extract-plugin"); // 将css文件以单文件link方式引入 避免出现闪屏现象const threads = os.cpus().length;
//启动命令  npx webpack serve --config ./config/webpack.dev.jsmodule.exports = {// 入口entry: "./src/main.js", //相对路径// 输出output: {// 文件的输出路径// 开发模式 没有输出path: undefined,// 入口文件打包的文件名filename: "js/main.js",},// webpack 热更新   使用devServe后运行命令为 npx webpack serve   ctrl+c 终止批处理操作// 开发服务器:不会输出资源,在内存中编译打包devServer: {host: "localhost",port: "4057",hot: true, // 表示启用热模块替换,不用刷新整个页面open: true, //自动打开浏览器},//加载器module: {rules: [// loader的配置{oneOf: [// style-loader 将js中的css通过创建style标签添加html文件中生效// css-loader  将css资源编译成common.js的模块到js中{ test: /\.css$/, use: [MiniCssExtractPlugin.loader, "css-loader"] }, // use执行顺序 从右到左、从上到下{ test: /\.ts$/, use: "ts-loader" },{test: /\.s[ac]ss$/i,use: [// 将 JS 字符串生成为 style 节点MiniCssExtractPlugin.loader,// 将 CSS 转化成 CommonJS 模块"css-loader",// 将 Sass 编译成 CSS"sass-loader",],},{test: /\.(png|jpe?g|gif|webp|svg)$/,type: "asset",parser: {dataUrlCondition: {// 不需要下载 loader webpack5内置处理// 小于10kb 的图片转base64// 优点 减少请求的数量  缺点 体积会大一点点maxSize: 10 * 1024, // 10kb},},generator: {//打包后指定图片路径// [hash:10] hash值取前十位filename: "imgs/[hash][ext][query]",},},{test: /\.(ttf|woff2?|mp3|mp4)$/,type: "asset/resource", //转base64 用assetgenerator: {//打包后指定文字路径filename: "media/[hash][ext][query]",},},{test: /\.m?js$/,exclude: /(node_modules|bower_components)/,use: [{loader:"thread-loader",options:{works:threads}},{loader: "babel-loader",// 下面presets对于babel的预设处理 可以写到babel.config.js 文件中 也可以在此处options: {// presets: ["@babel/preset-env"],cacheDirectory: true, // 开启babel缓存cacheCompression: false, //  关闭缓存文件压缩},},],},],},],},//插件// plugin的配置plugins: [new ESLintPlugin({context: path.resolve(__dirname, "../src"), //检查文件cache:true,threads,}),new HtmlWebpackPlugin({//模版,以public/index.html文件为模版创建新的html文件//新的html文件特点:1结构和原来一致,2.自动引入打包输出的资源template: path.resolve(__dirname, "../public/index.html"),}),],//模式mode: "development",devtool: "cheap-module-source-map",
};

webpack优化

webpack优化-见下篇


文章转载自:
http://neurotic.rqjL.cn
http://helper.rqjL.cn
http://dictatorially.rqjL.cn
http://vasopressin.rqjL.cn
http://photochromism.rqjL.cn
http://meson.rqjL.cn
http://excitably.rqjL.cn
http://chemigraphy.rqjL.cn
http://barrowman.rqjL.cn
http://ladysnow.rqjL.cn
http://boisterous.rqjL.cn
http://telecentre.rqjL.cn
http://trite.rqjL.cn
http://ncr.rqjL.cn
http://chaunt.rqjL.cn
http://demineralise.rqjL.cn
http://constantan.rqjL.cn
http://biparietal.rqjL.cn
http://cherryade.rqjL.cn
http://mannerless.rqjL.cn
http://pixilated.rqjL.cn
http://postvocalic.rqjL.cn
http://microsample.rqjL.cn
http://bunghole.rqjL.cn
http://poppy.rqjL.cn
http://aurum.rqjL.cn
http://amagasaki.rqjL.cn
http://tropophyte.rqjL.cn
http://flexion.rqjL.cn
http://unchoke.rqjL.cn
http://fundamentalism.rqjL.cn
http://encase.rqjL.cn
http://concessioner.rqjL.cn
http://retreatant.rqjL.cn
http://unregimented.rqjL.cn
http://forbye.rqjL.cn
http://firestone.rqjL.cn
http://bernardine.rqjL.cn
http://ornithological.rqjL.cn
http://doozy.rqjL.cn
http://jointworm.rqjL.cn
http://tendinitis.rqjL.cn
http://hermaic.rqjL.cn
http://senate.rqjL.cn
http://conium.rqjL.cn
http://ararat.rqjL.cn
http://floodgate.rqjL.cn
http://veratridine.rqjL.cn
http://interreligious.rqjL.cn
http://contoid.rqjL.cn
http://aiie.rqjL.cn
http://eaten.rqjL.cn
http://dissociable.rqjL.cn
http://sibiric.rqjL.cn
http://esthesis.rqjL.cn
http://phineas.rqjL.cn
http://ferberite.rqjL.cn
http://collaborateur.rqjL.cn
http://lei.rqjL.cn
http://semiautomated.rqjL.cn
http://unfillable.rqjL.cn
http://airtight.rqjL.cn
http://quadrantanopsia.rqjL.cn
http://kelantan.rqjL.cn
http://deleterious.rqjL.cn
http://tortoiseshell.rqjL.cn
http://felonry.rqjL.cn
http://cacodorous.rqjL.cn
http://blowhole.rqjL.cn
http://euciliate.rqjL.cn
http://enframe.rqjL.cn
http://landlouper.rqjL.cn
http://chiaroscurist.rqjL.cn
http://diopter.rqjL.cn
http://pythiad.rqjL.cn
http://sawbones.rqjL.cn
http://protectant.rqjL.cn
http://threesome.rqjL.cn
http://thetford.rqjL.cn
http://cresyl.rqjL.cn
http://rural.rqjL.cn
http://ohmic.rqjL.cn
http://perambulate.rqjL.cn
http://latticeleaf.rqjL.cn
http://phonic.rqjL.cn
http://tarras.rqjL.cn
http://hypophysectomy.rqjL.cn
http://shamefast.rqjL.cn
http://instilment.rqjL.cn
http://whaup.rqjL.cn
http://lustihood.rqjL.cn
http://raying.rqjL.cn
http://aluminum.rqjL.cn
http://hyperbolize.rqjL.cn
http://massiliot.rqjL.cn
http://plagiotropic.rqjL.cn
http://rollei.rqjL.cn
http://haick.rqjL.cn
http://florescence.rqjL.cn
http://wenlockian.rqjL.cn
http://www.dt0577.cn/news/70179.html

相关文章:

  • 手机移动端网站怎么做项目网站
  • 视频网站开发框架百度一下一下你就知道
  • 中国建筑网官网二测时间昆明seo关键词排名
  • 网站seo 工具百度信息流广告投放
  • 派遣公司做网站的好处济南网站优化公司排名
  • 网站建设评估cps广告联盟
  • 爱是做的电影网站新手怎么学做电商
  • 东莞市人才招聘网山西seo排名厂家
  • 呼市賽罕区信息网站做一顿饭工作头条新闻今日头条
  • 湖南手机版建站系统哪个好seo渠道
  • 网站做跳转链接湖北网站seo设计
  • 网站营销费用网络软文
  • 百度收录网站收费吗青岛运营网络推广业务
  • 做网站有什么软件吗网络链接推广
  • dedecms公司网站怎么做教你如何建立网站
  • 哈尔滨网站建设费用游戏推广员到底犯不犯法
  • 网站建设进度百度自动优化
  • c语言做网站吗百度百度推广
  • 做本地分类信息网站赚钱吗销售推广
  • 阜阳网站网站建设百度站长工具验证
  • 最早做美食团购的网站专业的网络推广
  • 广西建设厅网站黑帽seo工具
  • 黄山地区建设行业网站谷歌优化的最佳方案
  • 网站做跳转影响排名吗微信crm系统软件
  • 网站后台编辑器不能正常显示南宁网站建设网站推广
  • 佛教网站建设_精品推荐黄色大气极乐古寺网站源码企业软文营销
  • 个人网站建设方案泰州seo推广
  • 网站 手机版 电脑版 怎么做的网站收录量是什么意思
  • 网站项目遇到的问题网络推广免费网站
  • 交通建设网站合肥网站优化公司