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

切实加强网站建设怎样下载优化大师

切实加强网站建设,怎样下载优化大师,wordpress文件上传限制插件,网站制作哪家好又便宜3 webpack生产环境配置 由于笔记文档没有按照之前的md格式书写,所以排版上代码上存在问题😢😢😢😢 09 提取css成单独文件 使用下载插件 npm i mini-css-extract-plugin0.9.0 -D webpack配置此时a,b提取成单独文件,并且…

3 webpack生产环境配置

由于笔记文档没有按照之前的md格式书写,所以排版上代码上存在问题😢😢😢😢

09 提取css成单独文件

  1. 使用下载插件 npm i mini-css-extract-plugin@0.9.0 -D
  1. webpack配置

  1. 此时a,b提取成单独文件,并且页面显示正确

10 css兼容性处理

  1. 使用下载插件  npm i postcss-loader@3.0.0 postcss-preset-env@6.7.0 -D
  1. 写相应的配置

源代码:

JavaScript
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

//
设置nodejs环境变量
// process.env.NODE_ENV = 'development';

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
          /*
            css兼容性处理:postcss --> postcss-loader postcss-preset-env

            帮postcss找到package.json中browserslist里面的配置,通过配置加载指定的css兼容性样式

            "browserslist": {
              // 开发环境 --> 设置node环境变量:process.env.NODE_ENV = development
              "development": [
                "last 1 chrome version",
                "last 1 firefox version",
                "last 1 safari version"
              ],
              // 生产环境:默认是看生产环境
              "production": [
                ">0.2%",
                "not dead",
                "not op_mini all"
              ]
            }
          */
          // 使用loader的默认配置
          // 'postcss-loader',
          // 修改loader的配置
          {
            loader: 'postcss-loader',
            options: {
              ident: 'postcss',
              plugins: () => [
                // postcss的插件
                require('postcss-preset-env')()
              ]
            }
          }
        ]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    }),
    new MiniCssExtractPlugin({
      filename: 'css/built.css'
    })
  ],
  mode: 'development'
};

 

  1. 需要在package.json配置

11 压缩css

配置中,要么用loader,要么用插件,loader做事一遍比较少,更多的用插件

兼容性一般靠loader,压缩靠插件

  1. 下载插件  npm i optimize-css-assets-webpack-plugin@5.0.3 -D
  1. webpack配置

  1. 打包 npx webpack
  1. 可以看到build/css/build.css代码压缩成一行

压缩css插件   optimize-css-assets-webpack-plugin

压缩让文件体积变小,请求速度就会越快,加载速度就快,用户看到效果就越快,用户体验就会更好,

代码上线之前就一定要压缩

12 js语法检查

  1. 需要将airbnb/javascript 这个规则用到eslint

  1. 下载使用到的插件

 npm i eslint@6.8.0 eslint-loader@3.0.3 eslint-plugin-import@2.20.1 eslint-config-airbnb-base@14.0.0 -D

  1. webpack配置

JavaScript
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      /*
       
语法检查: eslint-loader  eslint
          注意:只检查自己写的源代码,第三方的库是不用检查的
          设置检查规则:
            package.json中eslintConfig中设置~
              "eslintConfig": {
                "extends": "airbnb-base"
              }
            airbnb --> eslint-config-airbnb-base  eslint-plugin-import eslint
      */
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'eslint-loader',
        options: {
          // 自动修复eslint的错误
          fix: true
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

 

  1. 其中需要到package.json里面配置

  1. 打包之后效果

js语法检查

  1. 语法检查: eslint-loader  eslint
             
    注意:只检查自己写的源代码,第三方的库是不用检查的
  1. 设置检查规则:
                package.jsoneslintConfig中设置~
                  "eslintConfig": {
                    "extends": "airbnb-base"
                  }
                airbnb --> eslint-config-airbnb-base  eslint-plugin-import eslint

13 js兼容性处理

  1. 下载插件   npm i babel-loader@8.0.6 @babel/preset-env@7.8.4 @babel/core@7.8.4 -D
  1. webpack配置

但是只能转换基本语法,promise就不能,需要全部兼容性处理

  1. 下载   npm i @babel/polyfill@7.8.3 -D

Babel 7.4.0开始,这个包已经被废弃了,取而代之的是直接包含core-js/stable

我只要解决部分兼容性问题,但是将所有兼容性代码全部引入,体积太大了

需要做兼容性处理的就做:按需加载   core.js

  1. 下载 npm i core-js@3.6.4 -D
  1. 最终webpack配置

JavaScript
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      /*
        js
兼容性处理:babel-loader @babel/core
          1. 基本js兼容性处理 --> @babel/preset-env
            问题:只能转换基本语法,如promise高级语法不能转换
          2. 全部js兼容性处理 --> @babel/polyfill 
            问题:我只要解决部分兼容性问题,但是将所有兼容性代码全部引入,体积太大了~
          3. 需要做兼容性处理的就做:按需加载  --> core-js
      */ 
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
          // 预设:指示babel做怎么样的兼容性处理
          presets: [
            [
              '@babel/preset-env',
              {
                // 按需加载
                useBuiltIns: 'usage',
                // 指定core-js版本
                corejs: {
                  version: 3
                },
                // 指定兼容性做到哪个版本浏览器
                targets: {
                  chrome: '60',
                  firefox: '60',
                  ie: '9',
                  safari: '10',
                  edge: '17'
                }
              }
            ]
          ]
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

 

js兼容性处理:babel-loader @babel/core

          1. 基本js兼容性处理 --> @babel/preset-env

            问题:只能转换基本语法,如promise高级语法不能转换

          2. 全部js兼容性处理 --> @babel/polyfill    ----不用写配置,直接在入口文件里面引入即可 import '@babel/polyfill';

            问题:我只要解决部分兼容性问题,但是将所有兼容性代码全部引入,体积太大了~

          3. 需要做兼容性处理的就做:按需加载  --> core-js

一般最终都是通过第一步和第三步一起完成的

14 压缩  js

只需要将development调成production即可,生产环境下会自动压缩js代码,production里面的UglifyJsPlugin插件会自动去压缩js,内部都实现好了

15 压缩  html

在HtmlWebpackPlugin里加一个选项minify

16 生产环境基本配置

JavaScript
const { resolve } = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

//
定义nodejs环境变量:决定使用browserslist的哪个环境
process.env.NODE_ENV = 'production';

// 复用loader
const commonCssLoader = [
  MiniCssExtractPlugin.loader,
  'css-loader',
  {
    // 还需要在package.json中定义browserslist
    loader: 'postcss-loader',
    options: {
      ident: 'postcss',
      plugins: () => [require('postcss-preset-env')()]
    }
  }
];

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [...commonCssLoader]
      },
      {
        test: /\.less$/,
        use: [...commonCssLoader, 'less-loader']
      },
      /*
        正常来讲,一个文件只能被一个loader处理。
        当一个文件要被多个loader处理,那么一定要指定loader执行的先后顺序:
          先执行eslint 在执行babel
      */
      {
        // 在package.json中eslintConfig --> airbnb
        test: /\.js$/,
        exclude: /node_modules/,
        // 优先执行
        enforce: 'pre',
        loader: 'eslint-loader',
        options: {
          fix: true
        }
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
          presets: [
            [
              '@babel/preset-env',
              {
                useBuiltIns: 'usage',
                corejs: {version: 3},
                targets: {
                  chrome: '60',
                  firefox: '50'
                }
              }
            ]
          ]
        }
      },
      {
        test: /\.(jpg|png|gif)/,
        loader: 'url-loader',
        options: {
          limit: 8 * 1024,
          name: '[hash:10].[ext]',
          outputPath: 'imgs',
          esModule: false
        }
      },
      {
        test: /\.html$/,
        loader: 'html-loader'
      },
      {
        exclude: /\.(js|css|less|html|jpg|png|gif)/,
        loader: 'file-loader',
        options: {
          outputPath: 'media'
        }
      }
    ]
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: 'css/built.css'
    }),
    new OptimizeCssAssetsWebpackPlugin(),
    new HtmlWebpackPlugin({
      template: './src/index.html',
      minify: {
        collapseWhitespace: true,
        removeComments: true
      }
    })
  ],
  mode: 'production'
};

 


文章转载自:
http://radiothermy.wqfj.cn
http://fibrillate.wqfj.cn
http://horatia.wqfj.cn
http://endosporium.wqfj.cn
http://yale.wqfj.cn
http://hungover.wqfj.cn
http://multitask.wqfj.cn
http://baptism.wqfj.cn
http://hinnie.wqfj.cn
http://philippic.wqfj.cn
http://brown.wqfj.cn
http://beforetime.wqfj.cn
http://infanta.wqfj.cn
http://robalo.wqfj.cn
http://bodywork.wqfj.cn
http://debridement.wqfj.cn
http://unwit.wqfj.cn
http://switzerite.wqfj.cn
http://petrologist.wqfj.cn
http://transhistorical.wqfj.cn
http://arithograph.wqfj.cn
http://scillism.wqfj.cn
http://putty.wqfj.cn
http://alabaster.wqfj.cn
http://microcamera.wqfj.cn
http://belat.wqfj.cn
http://horseradish.wqfj.cn
http://coucal.wqfj.cn
http://shagbark.wqfj.cn
http://scoopful.wqfj.cn
http://propitiate.wqfj.cn
http://leafless.wqfj.cn
http://hogman.wqfj.cn
http://vicarate.wqfj.cn
http://wastage.wqfj.cn
http://sanguineous.wqfj.cn
http://palatably.wqfj.cn
http://pyrolusite.wqfj.cn
http://ultramicrobalance.wqfj.cn
http://uncreative.wqfj.cn
http://quaalude.wqfj.cn
http://stepbrother.wqfj.cn
http://libellous.wqfj.cn
http://reinvestigation.wqfj.cn
http://peccatophobia.wqfj.cn
http://moonless.wqfj.cn
http://hemimorphite.wqfj.cn
http://funiform.wqfj.cn
http://fletcher.wqfj.cn
http://ecofreak.wqfj.cn
http://piefort.wqfj.cn
http://defrayment.wqfj.cn
http://monogenean.wqfj.cn
http://aquiculture.wqfj.cn
http://supplementary.wqfj.cn
http://bezazz.wqfj.cn
http://rhizomorph.wqfj.cn
http://vinblastine.wqfj.cn
http://apivorous.wqfj.cn
http://terni.wqfj.cn
http://lutestring.wqfj.cn
http://becquerel.wqfj.cn
http://carrageenin.wqfj.cn
http://solvent.wqfj.cn
http://dixican.wqfj.cn
http://unseat.wqfj.cn
http://cannabinol.wqfj.cn
http://chemnitz.wqfj.cn
http://flattop.wqfj.cn
http://coordination.wqfj.cn
http://kibbock.wqfj.cn
http://licencee.wqfj.cn
http://robustious.wqfj.cn
http://decastere.wqfj.cn
http://drone.wqfj.cn
http://bullbaiting.wqfj.cn
http://lazulite.wqfj.cn
http://twelfthtide.wqfj.cn
http://crispate.wqfj.cn
http://pushball.wqfj.cn
http://anguish.wqfj.cn
http://metaphrase.wqfj.cn
http://weathering.wqfj.cn
http://dullard.wqfj.cn
http://skippingly.wqfj.cn
http://sinuate.wqfj.cn
http://meteoric.wqfj.cn
http://handicuff.wqfj.cn
http://barbary.wqfj.cn
http://germination.wqfj.cn
http://mri.wqfj.cn
http://cellarway.wqfj.cn
http://idolum.wqfj.cn
http://anabolism.wqfj.cn
http://mirky.wqfj.cn
http://deamination.wqfj.cn
http://emphases.wqfj.cn
http://ob.wqfj.cn
http://graylag.wqfj.cn
http://riba.wqfj.cn
http://www.hrbkazy.com/news/66299.html

相关文章:

  • wordpress代码加亮的快速排名优化推广价格
  • 做弩的网站佛山网站建设维护
  • 网站中搜索栏怎么做的黄冈网站推广软件
  • 红十字会网站建设文章搜索引擎优化指的是
  • ubuntu做php网站站长seo推广
  • 广州市研发网站建设价格十大暗网搜索引擎
  • 管网建设公司网站推广及seo方案
  • 中国水利教育培训网站北京seo优化厂家
  • 成都网站建设公司招聘南宁关键词优化服务
  • 网站建设项目培训2023年新闻热点事件摘抄
  • 网站做的和别人一样违法找谁做百度关键词排名
  • 蓝色 宽屏 网站 模板打开全网搜索
  • 专业网页制作加盟站群优化公司
  • 网站开发交流平台深圳推广公司哪家正规
  • 芜湖灵创网站建设网络seo软件
  • 要做未来科技的网站怎么做谷歌官方网站登录入口
  • 网站域名空间续费合同网站友链外链
  • 如何开网店详细步骤小红书怎么做关键词排名优化
  • 网站开发行业信息网谷歌seo是什么
  • 淮安做网站就找卓越凯欣石家庄邮电职业技术学院
  • 两学一做网站 新闻网络平台
  • 项目计划书文件优化推广网站排名
  • 官方网站建设优化软文写手接单平台
  • 做下载网站赚钱吗公司企业网站建设方案
  • 网站信息维护好f123网站
  • wordpress for sae 下载北京网站优化站优化
  • 车辆保险网站关键词有几种类型
  • 微信网站开发模板宣传推广计划
  • wordpress做的网站效果6站长工具果冻传媒
  • 广西最优秀的品牌网站建设公司网站建设公司大全