|  |      1SunriseFox      2020-04-16 22:21:23 +08:00 不会,没有引用的文件不会被打包 | 
|  |      2youcanwin8099 OP @SunriseFox 引用一般是用什么语句引用进来?不好意思,初学 vue. | 
|  |      3mazai      2020-04-17 10:00:29 +08:00 @youcanwin8099 nodejs 的 package.json 会有依赖 | 
|  |      4youcanwin8099 OP @mazai 但是我写的文件只是一个普通的 vue,谈不上什么组件,不会在 package.json 里定义。 | 
|  |      5SunriseFox      2020-04-17 10:19:05 +08:00 via Android @youcanwin8099 import 或者 require | 
|  |      6youcanwin8099 OP @SunriseFox 比如我 import departWindow from './DepartWindow', 但是我页面里,没有在做任何关于这个 DepartWindow 的事情,那么是不是如果不删掉这个引用,同时也不删掉这个 DepartWindow.vue,那么项目会越来越大?打包越来越慢? | 
|  |      7SunriseFox      2020-04-17 11:02:16 +08:00 @youcanwin8099 是的 | 
|  |      8youcanwin8099 OP @SunriseFox 哎!那从某种意义上讲,vue 这种东西,就不适合快速迭代。 | 
|  |      9SunriseFox      2020-04-17 11:14:00 +08:00 @youcanwin8099 这个其实和 vue 没关系的,而是和 webpack 配置有关系。webpack 可以配置一些 tree shaking 的办法可以帮助移除这些没有引用的代码来减少项目体积(但是会极大地减慢打包速度);为了防止这些没有用到的引用,有 eslint 这样的工具帮忙查找定位,如果需要的话也可以借助工具在打包时自动移除。 | 
|  |      10jrtzxh020      2020-04-17 11:17:38 +08:00 via iPhone @youcanwin8099 使用 eslint 可以避免出现这种问题 | 
|  |      11youcanwin8099 OP “减少了项目体积“,”但是会极大地减慢打包速度?” 使用 eslint 时,应该只是不打包它,但是不会物理删除这个 DepartWindow.vue 吧? | 
|  |      12ljwrer      2020-04-17 13:48:45 +08:00 如果使用了 async import 可能会索引到,减慢打包速度 | 
|      13SilentDepth      2020-04-17 17:24:42 +08:00 以 Webpack 为例,build 时它会从入口模块开始一个个分析 require/import 语句,被引用到的模块会被纳入构建分析范围,这里是会影响构建速度的。 如果你在某个被引用的模块里 import 了 DepartWindow.vue ,那么它就被纳入构建分析范围,理论上会增加构建耗时。至于影响多大,取决于模块体积(比如代码内容越多分析过程越长)、构建优化手段(比如可以直接静态分析 vue 模块就不需要 vue-loader 工作了)。 ESLint 可以在开发阶段提示未被实际使用的依赖。如果可能,最好在一开始就移除这些未使用依赖。但实际地说,除非这种情况非常多,或者文件内容非常大,通常对构建性能没有太大影响。 | 
|  |      14zhwithsweet      2020-04-20 08:56:04 +08:00 @youcanwin8099 #11 那肯定啊,假如一个框架不经过你的允许,就自动删除你的文件。你敢用吗? |