git Submodule 将别人的模型文件通过子模块下载到自己的项目中

本文介绍了如何通过git Submodule将一个20MB大小的模型库集成到自己的项目中,以避免使用CDN。详细步骤包括添加子模块、指定路径,并在构建前拉取子模块。此外,还提到在处理子模块时遇到的文件命名和层级不规范的问题,以及初始化后无法直接修改的坑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接: git Submodule 将别人的模型文件通过子模块下载到自己的项目中

上一篇: 在ts项目中接入live2d-widget.js , 在网页中展示二次元老婆

下一篇: tailwind 一些案例

模型库, 这个库有点大, 20m多, 而且类似静态问题, 又不想使用cdn, 所以需要将该库作为子模块放到自己的工程中

https://github.com/xiazeyu/live2d-widget-models

详细参考: https://zhuanlan.zhihu.com/p/100214931

添加子模块并指定路径

git submodule add https://github.com/xiazeyu/live2d-widget-models.git public/lib/live2d-widget-models 

up-e27dcbaa437a2ff7d7d37dddc699db24f8a.png

会有仓库引用

up-28bd58ba88b1ac05a771768743877bbfb6f.png

修改build, 在build之前拉取子模块, 普通clone时子模块只有空文件夹占位

可以在clone的时候加参数
git clone ssh://ip/[path]/topRepository.git --recursive


如果已经初始化了
    "build": "git pull --recurse-submodules && vue-cli-service build",


第一次的话需要初始化
    "build": "git submodule init && git submodule update && vue-cli-service build",

用node遍历文件夹, 找到所有模型文件, 有的命名和层级不规范, 需要注意, 目前初始化后不能修改, 需要手动刷新才行... 这个有点坑..

const fs = require("fs")
const path = require("path")
const rootPath = path.resolve("./public/lib/live2d-widget-models/packages")
const root = fs.readdirSync(rootPath)
console.log(root)
const obj = {}
for (const name of root) {
  const p = path.resolve(rootPath, name, "assets")
  console.log(p)
  try {
    const jsonName = fs.readdirSync(p).find(i => i.includes("model.json"))
    console.log(jsonName)
    obj[name.replace("live2d-widget-model-", "")] = jsonName
  } catch (e) {
    console.log("===>error", name)
  }
}
console.log("obj", obj)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值