发现vite运行时遗漏文件

2,508 阅读2分钟

发现: 在我频繁的修改文件,同事频繁打包的过程中,不知道情况的我发现了一个文件:vite.config.js.timestamp-1664257262527.mjs,本着出现不明东西一探究竟的那个刺头,我疯狂寻找答案。

图片如下:

e80334807b7506ca78e25b70f1756eb.jpg

问题: 为什么出现vite.config.js.timestamp-1664257262527.mjs文件?

没错跟你们一样,我第一时间想到了度娘,我搜索的方式有

  1. vite.config.js.timestamp-1664257262527.mjs
  2. timestamp.mjs
  3. vite防止打包文件重复做了什么
  4. vite预防打包重复怎么做
  5. 后缀mjs文件

通过一顿操作,加上自己的回忆,就发现了大概问题所在。

我们先了解一下,如果模块的文件扩展名为mjs,则浏览器仅将其视为模块,就可以正常使用文件,.mjs文件是作为纯文本文件提供给浏览器的。如果是.js文件实际解析为模块,因为无法控制服务器。

那么新的问题来了:.js和.mjs文件有什么区别?

这些百度基本可以找到很多经验分享,我这里就简述一下:Node.js会将.cjs文件视为CommonJS模块,将.mjs文件视为ECMAScript模块,将.js文件视为项目的默认模块系统

简单的知道一些知识,我结合我的记忆搜索到,我有几次打包的过程中vite.config.js文件下面出现了一vite.config.js.timestamp-1664257262527.mjs(短暂出现),至于为什么我打包了很多次才出现一个被遗漏删除的,我想有很多因素,比如添加一些模块文件(文件太多我想不记得在哪里有了的)、修改打包的方式。这个文件的出现也是为了处理模块文件的打包。

完整总结: (参考了五先生的语言)

.mjs文件这个临时文件,在vite还在运行的时候,修改其中的配置文件,会出现这个文件,最后会自动删除。但是因为一些特殊原因,导致vite没有正常结束,删除的逻辑就没有去执行,就出现了这个文件。(比如中途退出vite或者vite报错、杀死进程等)

我的出现,你的出现点赞,关注一下呗。