A CLI to export a GDevelop game without the IDE (For example for CI).
The installation is done via npm, npm install gdexporter
.
gdexport <options>
Option | Aliases | Description |
---|---|---|
--project |
-p , --in |
Path to the game.json. Defaults to "./Project/game.json" . |
--out |
-o |
Path to the output direcory, where the game will be exported. Defaults to "./Exported" . |
--build |
-b |
The build type. It can be "electron" , "cordova" or "facebook" . If not specified or invalid, will export to HTML5. |
--version |
--tag , -v , -t |
The GDevelop version to use for exporting. It uses the github release tag (for example v5.0.0-beta103 ). Uses the latest release by default. |
--verbose |
None | This flag enables showing logs from GDCore. |
You can add a configuration file to specify the gdexporter options. It has to be named gdexport.config.js
and to be in the directory of execution of gdexporter. It is the recommended way to specify plugins.
Example configuration file:
module.exports = {
project: "./game.json",
output: "./dist",
buildType: "electron",
gdevelopVersion: "v5.0.0-beta105",
plugins: [
require("myPlugin"),
{
plugin: require("./myOtherPlugin"),
options: {
foo: "bar",
},
},
],
}
You can import the module to export a game programatically.
Example:
const exporter = require("gdexporter");
exporter("path/to/game.json", "path/to/export/directory", {
buildType: "electron",
gdevelopVersion: "v5.0.0-beta103",
plugins: [
require("myPlugin"),
{
plugin: require("./myOtherPlugin"),
options: {
foo: "bar",
},
},
],
}).then(() => console.log("Done!"));
It is possible to make plugins for gdexporter easily. A gdexporter plugin is a function that returns an object containing callback functions to call at certain points of the exportation. Plugin options are passed to the function. Here is an example plugin that modifies the project name:
module.exports = ({ name }) => ({
preExport: (project) => project.setName(name || "ProjectName"),
})
If this plugin is used like this:
module.exports = {
buildType: "electron",
gdevelopVersion: "v5.0.0-beta105",
plugins: [
{
plugin: require("./myPlugin"),
options: {
name: "Awesome Project"
}
},
],
}
Then the exported project would have as name "Awesome Project".
The available callbacks functions are:
Called with the gd.Project before exporting to preprocess the project.
Called with a fake document
after the export to modify the index.html. Using this to modify the index.html reduces the chances of a conflict between plugins.
Called with the path to the exported files after all other operations.