前言
在公司的全日制游戏项目中,原本的项目结构是这样的:
在 中,是每个独立的游戏项目,有独立的入口文件,但是部分通用的文件又在外部集合,包括静态资源。这种做法带来的坏处是不同的游戏之间耦合严重,开发和发布的时候构建项目的速度很慢(项目庞大),不能单独发布单个游戏,在开发的过程中新建游戏需要重复复制粘贴文件。导致开发的效率低下。最后决定参考 create-react-app 的做法,并且用类似 lerna 管理 npm 包的方式来控制单个游戏的打包。新的目录结构如下:
其中 和 是参考 和 vue-cli 的做法。而单独打包更新游戏的命令集成在 里面。 则是部分通用的库。每个游戏拥有独立的 ,然后每个游戏在games 独立成一个文件夹,可以各自引入依赖,避免相互之间的影响,并且在开发过程中可以单独开发单个游戏。
create-steam-game
基本参考 的做法。
全局安装后可以 通过 来创建新的游戏,会创建相应的游戏文件夹,并且安装 ,然后调用 中的 ,来安装相应的依赖和复制默认的文件,安装好的目录文件如下:
安装好之后就可以进入开发了!
steam-game-scripts
steam-game-scripts 的主要工作是负责搭建和打包项目。
由于我司是使用自建的发布系统进行项目的打包发布。于是需要在发布系统上在打包的时候添加自定义的 npm 执行命令。所以这里使用了 --options 的方式来支持单个游戏的打包。也可以搭建多个新游戏的项目仓库来分开打包。
steam-game-scripts/scripts/start.js
未完待续...
领取专属 10元无门槛券
私享最新 技术干货