日常使用 Mac 作为开发工具,有时会遇到本地代码正常,构建平台发布失败、找不到文件,部分是由于 大小写不一致 产生的问题。
MacOS 默认磁盘分区不区分大小写,而构建环境多为 Linux/Unix 系统区分大小写,本地无法发现的问题就暴露在了后续环节。
举个例子
# 项目中存在如下两个文件
├─ icon.vue
└─ main.js
// main.js
import Icon from './Icon.vue'
上述的代码,在 Mac 本地可以正常执行,import
也可找到 icon.vue
,但在构建平台执行时,遇到
Module not found: Eroor: Can't resolve './Icon.vue' in '/xxx/xx/x/'
这时在编辑器将 icon.vue
重命名为 Icon.vue
,执行 git diff
,发现没有任何差异,git
无法感知变化;
那需要如何解决这个问题?
解决方案
方案一: git mv
git mv icon.vue Icon.vue
这相当于
mv icon.vue Icon.vue
git add Icon.vue
这时候可以完成文件名字修改并提交到 git
暂存区。
这个方案可以在发现问题后快速解决,但不能根治,本地开发依然无法发现问题;
方案二:Mac 磁盘配置大小写敏感(终极方案)
如果 Mac 是全新的,可以将配置文件设置为大小写敏感。
大部分同学电脑中都以有很多文件,重新配置磁盘不可取,这里可以选择方案:新增一个 APFS
宗卷(Volume)
打开 磁盘管理 (Disk Utility)
点击顶部 分区 (Partition) - 添加宗卷 (Add Volume)
设置宗卷名称,格式选择 APFS(区分大小写 Case-sensitive)
点击 添加 完成新增宗卷
将代码转移至新增的宗卷,后续开发在此宗卷中(
/Volumes/workspace
)完成,即可在本地避免大小写问题;
后续的开发均在 workspace 宗卷中进行,即可避免大小写不敏感的问题 :)