记一次webpack打包的问题

在webpack打包中开启了webpack-bundle-analyzer,发现了一个chunk:tinymce

在整个项目中查找,只有一个未被使用的组件中有如下代码:

import Tinymce from '@/components/Tinymce

删除Tinymce文件夹之后,项目出现了报错:

Can't resolve '@/components/Tinymce'

开始排查错误,然后开始在main.js 中逐步注释代码,终于到注释掉下面的代码的时候不再报错了

import router from "./router";

查找了一遍router下面的文件,没有一处引入,继续排查,当注释掉下面的代码的时候好了

const _import = require('./_import_' + process.env.NODE_ENV);

上面这行代码的主要功能是根据环境使用不同的引入,在dev环境不使用webpack的分割方案,生成环境分割路由:

// development
module.exports = file => require('@/views/' + file + '.vue').default
// production
module.exports = file => () => import('@/views/' + file + '.vue')

问题就出在这里的require和import,当引入的内容包含表达式的时候,webpack文档的解释:
A context is created if your request contains expressions, so the exact module is not known on compile time. context module is generated. It contains references to all modules in that directory that can be required with a request matching the regular expression.
也就是说"@/views/"下的所得vue文件(包含子目录)都被webpack的require了,因为views文件夹下包含一个components的文件夹,tinymce就在该文件下,也就被引入了。

那么到了这里,问题的解决方案就有了,就是单独使用一个pages的文件夹存放路由对应的所有页面。

现在看看使用的webpack版本,还是2.6.1,优点太落后了,该升级了。

最新文章

  1. 【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去
  2. CAS学习笔记(一)
  3. VS2015解决非Unicode编码包含中文字段无法编译的问题
  4. JavaScript事件大全
  5. STM32F0xx_SPI读写(Flash)配置详细过程
  6. YARN学习笔记 ResourceManager部分
  7. 常见排序算法基于JS的实现
  8. 线段相交 poj 1066
  9. 字符串匹配的KMP算法(转)
  10. [日记&做题记录]-Noip2016提高组复赛 倒数十天
  11. 关于constraint的用法
  12. WebPack的安装
  13. 201621123060《JAVA程序设计》第十周学习总结
  14. c#devexpress 窗体控件dock的重要
  15. win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案
  16. 第六周周赛——AK机会不易得,好好把握题解(出自HDU5650,codeforces 616A,624A,659A,655A,658A)
  17. js作用域题目
  18. /usr/local/ 和 /opt
  19. win10 打开sql server配置管理器
  20. 并行Linq

热门文章

  1. Axis WSDD文件参考文档
  2. android屏幕适配的全攻略2--支持手机各种屏幕密度dpi
  3. MySql索引要注意的8个事情
  4. MapReduce 论文阅读笔记
  5. Python3-设计模式-装饰器模式
  6. Python 简明教程 ---10,Python 列表
  7. js事件入门(2)
  8. 实现MFC扩展DLL中导出类和对话框
  9. nginx 注释配置及详解
  10. SQL Server 索引的含义和特点