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

给自己家的公司做网站好做吗学百度推广培训

给自己家的公司做网站好做吗,学百度推广培训,旅游网站平台建设的方案,保利威视 wordpressCss 处理 提取 Css 成单独文件 Css 文件目前被打包到 js 文件中,当 js 文件加载时,会创建一个 style 标签来生成样式 这样对于网站来说,会出现闪屏现象,用户体验不好 我们应该是单独的 Css 文件,通过 link 标签加载…

Css 处理

提取 Css 成单独文件

Css 文件目前被打包到 js 文件中,当 js 文件加载时,会创建一个 style 标签来生成样式

这样对于网站来说,会出现闪屏现象,用户体验不好

我们应该是单独的 Css 文件,通过 link 标签加载性能才好

1. 下载包

npm i mini-css-extract-plugin -D

2. 配置

  • webpack.prod.js
const path = require("path");
const ESLintWebpackPlugin = require("eslint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");module.exports = {entry: "./src/main.js",output: {path: path.resolve(__dirname, "../dist"), // 生产模式需要输出filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中clean: true,},module: {rules: [{// 用来匹配 .css 结尾的文件test: /\.css$/,// use 数组里面 Loader 执行顺序是从右到左use: [MiniCssExtractPlugin.loader, "css-loader"],},{test: /\.less$/,use: [MiniCssExtractPlugin.loader, "css-loader", "less-loader"],},{test: /\.s[ac]ss$/,use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],},{test: /\.styl$/,use: [MiniCssExtractPlugin.loader, "css-loader", "stylus-loader"],},{test: /\.(png|jpe?g|gif|webp)$/,type: "asset",parser: {dataUrlCondition: {maxSize: 10 * 1024, // 小于10kb的图片会被base64处理},},generator: {// 将图片文件输出到 static/imgs 目录中// 将图片文件命名 [hash:8][ext][query]// [hash:8]: hash值取8位// [ext]: 使用之前的文件扩展名// [query]: 添加之前的query参数filename: "static/imgs/[hash:8][ext][query]",},},{test: /\.(ttf|woff2?)$/,type: "asset/resource",generator: {filename: "static/media/[hash:8][ext][query]",},},{test: /\.js$/,exclude: /node_modules/, // 排除node_modules代码不编译loader: "babel-loader",},],},plugins: [new ESLintWebpackPlugin({// 指定检查文件的根目录context: path.resolve(__dirname, "../src"),}),new HtmlWebpackPlugin({// 以 public/index.html 为模板创建文件// 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源template: path.resolve(__dirname, "../public/index.html"),}),// 提取css成单独文件new MiniCssExtractPlugin({// 定义输出文件名和目录filename: "static/css/main.css",}),],// devServer: {//   host: "localhost", // 启动服务器域名//   port: "3000", // 启动服务器端口号//   open: true, // 是否自动打开浏览器// },mode: "production",
};

3. 运行指令

npm run build

Css 兼容性处理

1. 下载包

npm i postcss-loader postcss postcss-preset-env -D

2. 配置

  • webpack.prod.js
const path = require("path");
const ESLintWebpackPlugin = require("eslint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");module.exports = {entry: "./src/main.js",output: {path: path.resolve(__dirname, "../dist"), // 生产模式需要输出filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中clean: true,},module: {rules: [{// 用来匹配 .css 结尾的文件test: /\.css$/,// use 数组里面 Loader 执行顺序是从右到左use: [MiniCssExtractPlugin.loader,"css-loader",{loader: "postcss-loader",options: {postcssOptions: {plugins: ["postcss-preset-env", // 能解决大多数样式兼容性问题],},},},],},{test: /\.less$/,use: [MiniCssExtractPlugin.loader,"css-loader",{loader: "postcss-loader",options: {postcssOptions: {plugins: ["postcss-preset-env", // 能解决大多数样式兼容性问题],},},},"less-loader",],},{test: /\.s[ac]ss$/,use: [MiniCssExtractPlugin.loader,"css-loader",{loader: "postcss-loader",options: {postcssOptions: {plugins: ["postcss-preset-env", // 能解决大多数样式兼容性问题],},},},"sass-loader",],},{test: /\.styl$/,use: [MiniCssExtractPlugin.loader,"css-loader",{loader: "postcss-loader",options: {postcssOptions: {plugins: ["postcss-preset-env", // 能解决大多数样式兼容性问题],},},},"stylus-loader",],},{test: /\.(png|jpe?g|gif|webp)$/,type: "asset",parser: {dataUrlCondition: {maxSize: 10 * 1024, // 小于10kb的图片会被base64处理},},generator: {// 将图片文件输出到 static/imgs 目录中// 将图片文件命名 [hash:8][ext][query]// [hash:8]: hash值取8位// [ext]: 使用之前的文件扩展名// [query]: 添加之前的query参数filename: "static/imgs/[hash:8][ext][query]",},},{test: /\.(ttf|woff2?)$/,type: "asset/resource",generator: {filename: "static/media/[hash:8][ext][query]",},},{test: /\.js$/,exclude: /node_modules/, // 排除node_modules代码不编译loader: "babel-loader",},],},plugins: [new ESLintWebpackPlugin({// 指定检查文件的根目录context: path.resolve(__dirname, "../src"),}),new HtmlWebpackPlugin({// 以 public/index.html 为模板创建文件// 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源template: path.resolve(__dirname, "../public/index.html"),}),// 提取css成单独文件new MiniCssExtractPlugin({// 定义输出文件名和目录filename: "static/css/main.css",}),],// devServer: {//   host: "localhost", // 启动服务器域名//   port: "3000", // 启动服务器端口号//   open: true, // 是否自动打开浏览器// },mode: "production",
};

3. 控制兼容性

我们可以在 package.json 文件中添加 browserslist 来控制样式的兼容性做到什么程度。

{// 其他省略"browserslist": ["ie >= 8"]
}

想要知道更多的 browserslist 配置,查看browserslist 文档

以上为了测试兼容性所以设置兼容浏览器 ie8 以上。

实际开发中我们一般不考虑旧版本浏览器了,所以我们可以这样设置:

{// 其他省略"browserslist": ["last 2 version", "> 1%", "not dead"]
}

4. 合并配置

  • webpack.prod.js
const path = require("path");
const ESLintWebpackPlugin = require("eslint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");// 获取处理样式的Loaders
const getStyleLoaders = (preProcessor) => {return [MiniCssExtractPlugin.loader,"css-loader",{loader: "postcss-loader",options: {postcssOptions: {plugins: ["postcss-preset-env", // 能解决大多数样式兼容性问题],},},},preProcessor,].filter(Boolean);
};module.exports = {entry: "./src/main.js",output: {path: path.resolve(__dirname, "../dist"), // 生产模式需要输出filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中clean: true,},module: {rules: [{// 用来匹配 .css 结尾的文件test: /\.css$/,// use 数组里面 Loader 执行顺序是从右到左use: getStyleLoaders(),},{test: /\.less$/,use: getStyleLoaders("less-loader"),},{test: /\.s[ac]ss$/,use: getStyleLoaders("sass-loader"),},{test: /\.styl$/,use: getStyleLoaders("stylus-loader"),},{test: /\.(png|jpe?g|gif|webp)$/,type: "asset",parser: {dataUrlCondition: {maxSize: 10 * 1024, // 小于10kb的图片会被base64处理},},generator: {// 将图片文件输出到 static/imgs 目录中// 将图片文件命名 [hash:8][ext][query]// [hash:8]: hash值取8位// [ext]: 使用之前的文件扩展名// [query]: 添加之前的query参数filename: "static/imgs/[hash:8][ext][query]",},},{test: /\.(ttf|woff2?)$/,type: "asset/resource",generator: {filename: "static/media/[hash:8][ext][query]",},},{test: /\.js$/,exclude: /node_modules/, // 排除node_modules代码不编译loader: "babel-loader",},],},plugins: [new ESLintWebpackPlugin({// 指定检查文件的根目录context: path.resolve(__dirname, "../src"),}),new HtmlWebpackPlugin({// 以 public/index.html 为模板创建文件// 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源template: path.resolve(__dirname, "../public/index.html"),}),// 提取css成单独文件new MiniCssExtractPlugin({// 定义输出文件名和目录filename: "static/css/main.css",}),],// devServer: {//   host: "localhost", // 启动服务器域名//   port: "3000", // 启动服务器端口号//   open: true, // 是否自动打开浏览器// },mode: "production",
};

5. 运行指令

npm run build

Css 压缩

1. 下载包

npm i css-minimizer-webpack-plugin -D

2. 配置

  • webpack.prod.js
const path = require("path");
const ESLintWebpackPlugin = require("eslint-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");// 获取处理样式的Loaders
const getStyleLoaders = (preProcessor) => {return [MiniCssExtractPlugin.loader,"css-loader",{loader: "postcss-loader",options: {postcssOptions: {plugins: ["postcss-preset-env", // 能解决大多数样式兼容性问题],},},},preProcessor,].filter(Boolean);
};module.exports = {entry: "./src/main.js",output: {path: path.resolve(__dirname, "../dist"), // 生产模式需要输出filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中clean: true,},module: {rules: [{// 用来匹配 .css 结尾的文件test: /\.css$/,// use 数组里面 Loader 执行顺序是从右到左use: getStyleLoaders(),},{test: /\.less$/,use: getStyleLoaders("less-loader"),},{test: /\.s[ac]ss$/,use: getStyleLoaders("sass-loader"),},{test: /\.styl$/,use: getStyleLoaders("stylus-loader"),},{test: /\.(png|jpe?g|gif|webp)$/,type: "asset",parser: {dataUrlCondition: {maxSize: 10 * 1024, // 小于10kb的图片会被base64处理},},generator: {// 将图片文件输出到 static/imgs 目录中// 将图片文件命名 [hash:8][ext][query]// [hash:8]: hash值取8位// [ext]: 使用之前的文件扩展名// [query]: 添加之前的query参数filename: "static/imgs/[hash:8][ext][query]",},},{test: /\.(ttf|woff2?)$/,type: "asset/resource",generator: {filename: "static/media/[hash:8][ext][query]",},},{test: /\.js$/,exclude: /node_modules/, // 排除node_modules代码不编译loader: "babel-loader",},],},plugins: [new ESLintWebpackPlugin({// 指定检查文件的根目录context: path.resolve(__dirname, "../src"),}),new HtmlWebpackPlugin({// 以 public/index.html 为模板创建文件// 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源template: path.resolve(__dirname, "../public/index.html"),}),// 提取css成单独文件new MiniCssExtractPlugin({// 定义输出文件名和目录filename: "static/css/main.css",}),// css压缩new CssMinimizerPlugin(),],// devServer: {//   host: "localhost", // 启动服务器域名//   port: "3000", // 启动服务器端口号//   open: true, // 是否自动打开浏览器// },mode: "production",
};

3. 运行指令

npm run build

文章转载自:
http://wanjiafieldman.rmyn.cn
http://wanjianuncupate.rmyn.cn
http://wanjiapolariscope.rmyn.cn
http://wanjiasamothrace.rmyn.cn
http://wanjiapardon.rmyn.cn
http://wanjiaaxillar.rmyn.cn
http://wanjiakoestler.rmyn.cn
http://wanjianep.rmyn.cn
http://wanjiavariegate.rmyn.cn
http://wanjiatherapy.rmyn.cn
http://wanjiaingenital.rmyn.cn
http://wanjiaheshvan.rmyn.cn
http://wanjiasaucebox.rmyn.cn
http://wanjiabeetling.rmyn.cn
http://wanjiapearlized.rmyn.cn
http://wanjiamaneating.rmyn.cn
http://wanjiagonef.rmyn.cn
http://wanjiabaulk.rmyn.cn
http://wanjiafaience.rmyn.cn
http://wanjiaacth.rmyn.cn
http://wanjiaoenone.rmyn.cn
http://wanjiaadream.rmyn.cn
http://wanjiafourteen.rmyn.cn
http://wanjialousy.rmyn.cn
http://wanjiaezra.rmyn.cn
http://wanjiabolognese.rmyn.cn
http://wanjiacherrywood.rmyn.cn
http://wanjiaaxillar.rmyn.cn
http://wanjiaparomomycin.rmyn.cn
http://wanjiawinepress.rmyn.cn
http://wanjiastockbreeding.rmyn.cn
http://wanjiaflavomycin.rmyn.cn
http://wanjiabrazier.rmyn.cn
http://wanjiazoogamete.rmyn.cn
http://wanjiarolly.rmyn.cn
http://wanjiaornithomancy.rmyn.cn
http://wanjiaswabian.rmyn.cn
http://wanjiaelectrocute.rmyn.cn
http://wanjiadisinform.rmyn.cn
http://wanjiafootwork.rmyn.cn
http://wanjiaexpansionism.rmyn.cn
http://wanjiamake.rmyn.cn
http://wanjiatrihydric.rmyn.cn
http://wanjiasebum.rmyn.cn
http://wanjiaidolum.rmyn.cn
http://wanjiacytophotometry.rmyn.cn
http://wanjiacoherer.rmyn.cn
http://wanjiaaria.rmyn.cn
http://wanjiapivottable.rmyn.cn
http://wanjiaactium.rmyn.cn
http://wanjiacopyboy.rmyn.cn
http://wanjiaamyotonia.rmyn.cn
http://wanjiaepigeal.rmyn.cn
http://wanjiaenolase.rmyn.cn
http://wanjiahmnzs.rmyn.cn
http://wanjiasinner.rmyn.cn
http://wanjianaples.rmyn.cn
http://wanjiamarquessate.rmyn.cn
http://wanjiahaylage.rmyn.cn
http://wanjiapythogenic.rmyn.cn
http://wanjiafrailness.rmyn.cn
http://wanjiamicroscopy.rmyn.cn
http://wanjialitz.rmyn.cn
http://wanjiaoutwatch.rmyn.cn
http://wanjiaunhung.rmyn.cn
http://wanjiasamp.rmyn.cn
http://wanjiaedc.rmyn.cn
http://wanjiahawthorn.rmyn.cn
http://wanjiadolcevita.rmyn.cn
http://wanjiainappetent.rmyn.cn
http://wanjiabide.rmyn.cn
http://wanjiaeffectivity.rmyn.cn
http://wanjiacumulate.rmyn.cn
http://wanjiashowplace.rmyn.cn
http://wanjiaormolu.rmyn.cn
http://wanjiaephebus.rmyn.cn
http://wanjiaplacet.rmyn.cn
http://wanjiasylvan.rmyn.cn
http://wanjiawhichsoever.rmyn.cn
http://wanjiaatramentous.rmyn.cn
http://www.15wanjia.com/news/109307.html

相关文章:

  • 网站域名后缀有什么用重庆seo关键词优化服务
  • 建设部物业证书查询官方网站互联网平台推广是什么意思
  • 做网站需要什么设备网站seo搜索引擎优化怎么做
  • 杭州网站开发公司北京百度关键词推广
  • 小鱼儿企业网站管理系统seo关键词优化推广哪家好
  • 网页制作中网站名称怎么做互联网平台推广怎么做
  • 重庆技术支持 网站建设公司域名注册商怎么查
  • 代做毕业设计网站 道路桥梁今日新闻摘抄10条简短
  • 微网站建设包含哪些内容推广关键词怎么设置
  • 东莞网站建设渠道湖南专业seo推广
  • 建立一个公司网站seo sem
  • 高端h5网站百度引擎搜索入口
  • 网站开发和ipv6幽默软文经典案例300
  • 网站维护外包岳阳网站界面设计
  • 网站首页设置伪静态google play下载安装
  • o2o网站建站推广普通话的重要意义
  • wordpress免插件贵阳百度快照优化排名
  • 电商网站建设精准扶贫的目的如何找到网络公关公司
  • 购物网站主页模版网络广告销售
  • 徐州招标投标信息网合肥百度seo代理
  • 营销型网站制作多少钱专业做网站建设的公司
  • 牛商网是干啥的长沙网站seo优化公司
  • 北京网站建设 一流百度推广产品
  • 网站源码搭建网站百度统计官网
  • 网站系统解决方案新闻最新消息
  • 河北互联网公司廊坊网站seo
  • 内蒙古建设厅门户网站整合营销传播成功案例
  • 建个网站找注册自己的网站
  • Wordpress与dw整站seo
  • 婴幼儿网站模板百度指数怎么查询