zoukankan      html  css  js  c++  java
  • webpack vue热加载编译速度慢

    问题描述: vue2.x + iview项目随着文件越来越多打包速度越来越慢

    76% basic chunk optimization RemoveParentModulesPlugin
    

    解决方法:

    安装babel-plugin-dynamic-import-node插件

    npm install babel-plugin-dynamic-import-node --save-dev
    
    

    配置 .babelrc 文件

    {
        presets: [
            '@vue/app'
        ],
        env: {
            development: {
              plugins: ['dynamic-import-node']
            }
        }
    }
    

    衍生问题:

    问题1 安装了插件后,打包速度提高了,但是打dist包测试的时候发现漏了好多包,造成了无法发版。

    解决发版问题

    打版时候把 .babelrc文件中下面的代码注释掉即可,打完包在恢复过来,这样打包也可以,热更新又快。

        env: {
            development: {
              plugins: ['dynamic-import-node']
            }
        }
    

    问题2 安装了插件后,打包报错 Critical dependency: the request of a dependency is an expression

    根据提示可以找到主要造成这个问题的代码是以下这段:

    export const loadView = (view) => { // 路由懒加载
        return () => import(`@/views/${view}`)
    }
    

    全局搜索node_modules我们可以看到这个问题是由webpack 的 lib/dependencies/ContextDependencyHelpers.js 第224行报出的警告;
    然后在官方的issues中也能找到相关问题;

    不过官方似乎并没有给出解决方案(也可能是我没有找到),也许是官方并不赞同import(@/views/${view})这种引入方式;

    我们也可以想办法换个方式引入,例如:

    export const loadView = (view) => { // 路由懒加载
        return () => Promise.resolve(require(`@/views/${view}`).default)
    }
    

    这样既能保证组件的异步载入,也不会被webpack报异常,terminal看起来舒服多了;

    webpack 版本问题,webpack4中动态import不支持变量方式,

    该修改对于生产环境无影响,只在开发环境有问题

    备注

    http://zhihesj.com/?id=771

  • 相关阅读:
    Numpy学习笔记练习代码 ——(二)
    Requests爬取表格数据并存入CSV中
    Numpy学习练习代码 ——(一)
    Requests爬取中文网站乱码问题
    Pycharm用Ctrl+鼠标滚轮控制字体大小
    一、Windows10下python3和python2同时安装
    inux下配置rsyncd服务
    shell 脚本中$$,$#,$?分别代表什么意思?
    linux shell awk 流程控制语句(if,for,while,do)详细介绍
    定时任务
  • 原文地址:https://www.cnblogs.com/codebook/p/13605271.html
Copyright © 2011-2022 走看看