zoukankan      html  css  js  c++  java
  • webpack打包优化

    友链:Webpack 打包优化之速度篇          vue-cli+webpack优化首页加载速度慢的问题

    前言

    由于项目越来越大,打包的时间越来越长,这里我统计了一下打包所需时间:

    优化之前打包的时间31s

    优化项目一:提高打包编译的时间

    1.增强代码代码压缩工具

    Webpack 默认提供的 UglifyJS 插件,由于采用单线程压缩,速度颇慢 ;推荐采用 webpack-parallel-uglify-plugin 插件,她可以并行运行 UglifyJS 插件,更加充分而合理的使用 CPU 资源,

    这可以大大减少的构建时间;当然,该插件应用于生产环境而非开发环境,其做法如下,webpack.prod.conf.js

    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false
      },
      sourceMap: true
    })
    
    替换

    var ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin'); new ParallelUglifyPlugin({ // cacheDir: '.cache/', uglifyJS:{ output: { comments: false }, compress: { // warnings: false // 我加上这个后打包会报错 drop_debugger: true, // 去掉所有的debugger drop_console: true // 去掉所有的console } } })

    附:

    1.先安装webpack-parallel-uglify-plugin 插件

    cnpm install webpack-parallel-uglify-plugin --save-dev

    2. warnings 报错信息


    优化项目二:提升运行编译启动的时间

    2.设置 babel 的 cacheDirectory 为true

    babel-loader is slow! 所以不仅要使用exclude、include,尽可能准确的指定要转化内容的范畴,而且要充分利用缓存,进一步提升性能。

    babel-loader 提供了 cacheDirectory特定选项(默认 false):设置时,给定的目录将用于缓存加载器的结果。

    未来的 Webpack 构建将尝试从缓存中读取,以避免在每次运行时运行潜在昂贵的 Babel 重新编译过程

    如果值为空(loader: ‘babel-loader?cacheDirectory’)或true(loader: babel-loader?cacheDirectory=true),

    node_modules/.cache/babel-loader 则 node_modules 在任何根目录中找不到任何文件夹时,加载程序将使用默认缓存目录或回退到默认的OS临时文件目录。

    实际使用中,效果显著;配置示例如下:

    webpack.base.conf.js

    rules: [
      {
        test: /.js$/,
        loader: 'babel-loader?cacheDirectory=true',
        exclude: /node_modules/,
        include: [resolve('src'), resolve('test')]
      },
      ... ...
    ]

  • 相关阅读:
    SpringMVC统一异常处理
    How to convert BigDecimal to Double in spring-data-mongodb framework
    DHCP动态主机配置协议
    你所听到的技术原理、技术本质到底是什么?
    前端技术及开发模式的演进,带你了解前端技术的前世今生
    金三银四,如何征服面试官,拿到Offer
    何谓多租户模式 ?
    骄傲的技术人,技术是你的全部吗?
    自我剖析,坚持有多难?
    从官方文档去学习之FreeMarker
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/11202086.html
Copyright © 2011-2022 走看看