WebGAL icon indicating copy to clipboard operation
WebGAL copied to clipboard

调研如何将 WebGAL 用 npm 包分发

Open MakinoharaShoko opened this issue 1 year ago • 4 comments

每次 WebGAL 升级后,都复制产物到 Terre 太蠢了,必须改变这种情况。 用 npm 包发布将改善这种情况。但是出于调试的需要,复制产物的脚本需要保留。但是可以加到 git ignore 里面。 调试的时候还是用以前的方式,跑脚本打包 WebGAL,复制产物到 Terre 但发布的时候就可以去拉 WebGAL 的 npm 包了,因为 WebGAL 发版早于 Terre,并且这样也可以避免 Terre 项目上出现和 Terre 本身无关的,升级引擎的提交。

MakinoharaShoko avatar Nov 07 '24 16:11 MakinoharaShoko

考虑一下yarn link?

我之前在开发parser的时候,就用这个命令将本地的WebGAL注册为WebGAL_Terre的依赖来调试。它的实现机理是用软链接覆盖node_modules里的目录。

这样的话,流程就变成

  • 在WebGAL目录编译
  • WebGAL_Terre自动应用本地编译的版本
  • 调试完毕后,几个package正常发布

tinyAdapter avatar Nov 12 '24 14:11 tinyAdapter

这里我们主要考虑的是两个问题: 1、编辑器上出现了升级引擎的提交 2、引擎的构建后版本事实上进入了 Terre 源码,这应当是构建时获取的。

因此,对于这两个问题,我想到的解决方案是: 1、将 Terre 的引擎模板部分加入 .gitignore 2、在发布构建阶段,由于调用 postinstall 将 webgal 包里的文件拷贝到正确的位置,所以构建时可以正确拿到 WebGAL 引擎的构建产物。

很显然,在调试阶段我们不可能那样频繁地发包,这时候我们还用 release-to-terre 脚本或 yarn link 解决问题。

MakinoharaShoko avatar Nov 12 '24 14:11 MakinoharaShoko

或者,我们可以在执行 dev 和 build 脚本的时候,将 webgal 包里的文件拷贝到正确的位置

MakinoharaShoko avatar Nov 12 '24 14:11 MakinoharaShoko

我觉得既然都用GitHub Action了,确实可以考虑直接加一个Action来监测package.json里的version更新,触发自动发布到npm。

(说起来webgal包名似乎被占了,可以考虑用@webgal/前缀,例如@webgal/engine)

tinyAdapter avatar Nov 12 '24 14:11 tinyAdapter