vue 项目,如果新建了一个文件, 但是后来不用了,但是没有去删掉它,如果这样的文件越来越多,会不会整个工程打包的速度会变慢?

2020-04-16 22:16:49 +08:00
 youcanwin8099
2800 次点击
所在节点    Vue.js
14 条回复
SunriseFox
2020-04-16 22:21:23 +08:00
不会,没有引用的文件不会被打包
youcanwin8099
2020-04-17 09:58:21 +08:00
@SunriseFox 引用一般是用什么语句引用进来?不好意思,初学 vue.
mazai
2020-04-17 10:00:29 +08:00
@youcanwin8099 nodejs 的 package.json 会有依赖
youcanwin8099
2020-04-17 10:16:29 +08:00
@mazai 但是我写的文件只是一个普通的 vue,谈不上什么组件,不会在 package.json 里定义。
SunriseFox
2020-04-17 10:19:05 +08:00
@youcanwin8099 import 或者 require
youcanwin8099
2020-04-17 11:00:28 +08:00
@SunriseFox 比如我
import departWindow from './DepartWindow',
但是我页面里,没有在做任何关于这个 DepartWindow 的事情,那么是不是如果不删掉这个引用,同时也不删掉这个 DepartWindow.vue,那么项目会越来越大?打包越来越慢?
SunriseFox
2020-04-17 11:02:16 +08:00
youcanwin8099
2020-04-17 11:06:52 +08:00
@SunriseFox 哎!那从某种意义上讲,vue 这种东西,就不适合快速迭代。
SunriseFox
2020-04-17 11:14:00 +08:00
@youcanwin8099 这个其实和 vue 没关系的,而是和 webpack 配置有关系。webpack 可以配置一些 tree shaking 的办法可以帮助移除这些没有引用的代码来减少项目体积(但是会极大地减慢打包速度);为了防止这些没有用到的引用,有 eslint 这样的工具帮忙查找定位,如果需要的话也可以借助工具在打包时自动移除。
jrtzxh020
2020-04-17 11:17:38 +08:00
@youcanwin8099 使用 eslint 可以避免出现这种问题
youcanwin8099
2020-04-17 11:23:20 +08:00
“减少了项目体积“,”但是会极大地减慢打包速度?”
使用 eslint 时,应该只是不打包它,但是不会物理删除这个 DepartWindow.vue 吧?
ljwrer
2020-04-17 13:48:45 +08:00
如果使用了 async import 可能会索引到,减慢打包速度
SilentDepth
2020-04-17 17:24:42 +08:00
以 Webpack 为例,build 时它会从入口模块开始一个个分析 require/import 语句,被引用到的模块会被纳入构建分析范围,这里是会影响构建速度的。

如果你在某个被引用的模块里 import 了 DepartWindow.vue ,那么它就被纳入构建分析范围,理论上会增加构建耗时。至于影响多大,取决于模块体积(比如代码内容越多分析过程越长)、构建优化手段(比如可以直接静态分析 vue 模块就不需要 vue-loader 工作了)。

ESLint 可以在开发阶段提示未被实际使用的依赖。如果可能,最好在一开始就移除这些未使用依赖。但实际地说,除非这种情况非常多,或者文件内容非常大,通常对构建性能没有太大影响。
zhwithsweet
2020-04-20 08:56:04 +08:00
@youcanwin8099 #11 那肯定啊,假如一个框架不经过你的允许,就自动删除你的文件。你敢用吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663223

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX