npm与OSX框架兼容问题:Git仓库npm包安装时文件夹别名丢失
解决OSX文件夹别名在npm install时无法正确下载的问题
我之前碰到过一模一样的情况,核心问题出在OSX Finder创建的别名和Git、npm的兼容性上——Git确实会把那个小别名文件当作普通文本提交,但npm安装后并不会自动把它转换成能正常工作的文件夹指向,因为Finder别名是OSX特有的特殊文件,并非标准的符号链接。
给你几个可行的解决步骤:
替换Finder别名为标准符号链接
这是最稳妥的方案,因为符号链接是Unix系统通用的,Git和npm都能正确处理:- 先删掉现有的Headers别名文件:
rm Headers - 用
ln -s命令创建标准符号链接:ln -s Versions/Current/Headers Headers - 把这个新的符号链接提交到Git:
git add Headers git commit -m "Replace Finder alias with symlink for Headers"
- 先删掉现有的Headers别名文件:
确保Git和npm都能识别这个文件
- 检查你的
.gitignore文件,别把Headers排除在外; - 确认package.json里的
files字段包含Headers(如果设置了files的话),这样npm打包时会把它包含进去。
- 检查你的
验证效果
提交修改后,你可以测试一下:- 把仓库克隆到新目录,或者用
npm install安装你的包; - 进入node_modules里的包目录,用
ls -l Headers查看,应该能看到它是指向Versions/Current/Headers的符号链接,而不是那个只有一行文本的小文件。
- 把仓库克隆到新目录,或者用
如果坚持要用Finder别名的话,其实Git并没有原生支持,因为别名依赖OSX的元数据,跨平台性很差,所以还是推荐用符号链接的方案,既能解决当前问题,也能兼容更多环境。
内容的提问来源于stack exchange,提问作者kromenak
相关产品推荐
相关产品推荐

