3.2.12 • Published 10 months ago

gdexporter v3.2.12

Weekly downloads
30
License
MIT
Repository
github
Last release
10 months ago

gdexporter

A CLI to export a GDevelop game without the IDE (For example for CI).

Installation

The installation is done via npm, npm install gdexporter.

Usage

gdexport <options>

Parameters

OptionAliasesDescription
--project-p, --inPath to the game.json. Defaults to "./Project/game.json".
--out-oPath to the output direcory, where the game will be exported. Defaults to "./Exported".
--build-bThe build type. It can be "electron", "cordova" or "facebook". If not specified or invalid, will export to HTML5.
--version--tag, -v, -tThe GDevelop version to use for exporting. It uses the github release tag (for example v5.0.0-beta103). Uses the latest release by default.
--verboseNoneThis flag enables showing logs from GDCore.

Configuration file

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",
      },
    },
  ],
}

Programmatic API

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!"));

Plugins

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:

preExport(project: gd.Project)

Called with the gd.Project before exporting to preprocess the project.

document(document: JSDom.window.Document)

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.

postExport(exportPath: string)

Called with the path to the exported files after all other operations.

3.2.9

10 months ago

3.2.12

10 months ago

3.2.11

10 months ago

3.2.10

10 months ago

3.2.8

2 years ago

3.2.7

2 years ago

3.2.6

2 years ago

3.2.5

3 years ago

3.2.4

3 years ago

3.2.3

3 years ago

3.2.2

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.2

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.3.101

4 years ago

2.3.0

4 years ago

2.2.0

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

1.0.0

4 years ago