config.json Reference

To configure all tiktag deployment and debug-function you will need to create one config.json file in the root-directory of your project. This file is essential for building, debugging and deploy your project. Here you will find an overview of the configuration-options and the meanings of each key:

key: name (required)

"name": "yourProjectName"

Description

The name key defines the project name. If you changed and saved it the project name will be updated instantly.

key: entry (required)

"entry": "yourIndex.js"

Description

entry defines the initial JavaScript file. Tiktag will use this core file to start building, compiling and transpiling your project from here.

key: type (optional)

"type": "tag" | "library"

Description

type describes / sets the type of a project, which can be changed to setting either `library` or `tag` here.

key: shortName (optional)

"shortName": "myShortName"

Description

The shortName must be unique to the server and will be used for each project, tags and libraries. There is a separate `shortName` for templates only. shortName is per default a uuidV4. It can be changed to a systemwide unique name until it was deployed for the first time. After that it cannot be changed during the life-time of the project.

key: variant (optional)

"variant": "myVariant"

Description

A variant can be any string-value without a particular format-restriction. It will be available for checkout, so you can use different versions of your tag or library. Please remark that variants are totally independant from each other - you could even have different users working on different variants. This means that there is no merge of variants possible. Use the commandLine to create, set or archive variants:
new     --> variant
set     --> variant --> [list of variants]
archive --> variant --> [list of variants]

You should carefully choose your variant-strategy to make sure that all versions share common library-code and avoid redundancy. Variants are maintainable tags; For instance it does make sense to offer product-variations with a different set of features, but not using variants for storing versions, because variants are not intended to have an end of life.

object: debug (optional)

"debug":
{
  "publicUrl": true | false
}

Description

Currently the subObject debug only holds one possible Key, there will be more options to follow. If publicUrl is set to true your Debug-Url will be publicly available to all others. If set to false the access is restricted to you only. If this option is not set, it will be false by default.

array: nodePackages (optional)

"nodePackages":
[
  {
    "name": "nodePackageName",
    "version": "nodePackageVersion"
  }
]

Description

similar to npm tiktag offers access to common node-libraries for you to use. As built files will be compressed in one single file there will be a restricted compliance. Another option is to load a node-library instantly using jsdelivr
Example using Supabase Auth in any tiktag-js Source:
import supabaseauthJs from 'https://cdn.jsdelivr.net/npm/@supabase/auth-js@2.68.0/+esm'

object: deployment (optional)

"deployment":
{
  publicUrl: true | false
}

Description

Currently the subObject deployment only holds one possible Key, there will be more options to follow. For Tags: If publicUrl is set to true your tag can be deployed publicly, so others can access it
If publicUrl is set to false the deployment feature cannot be triggered, so it cannot be deployed
For Libraries:
If publicUrl is set to true your library can be deployed publicly, so others can access it.
If publicUrl is set to false the deployment feature cannot be triggered, so you can use your library only. The library will be linked to your tag statically in this case. publicUrl is set to false per default

object: template (optional)

"template":
{
  "name": "WebGL_3D_JavaScript_Template",
  "description": "Use this Template to create a 3D Application, Simulation or Game",
  "shortName": "webgl_3d_js",
  "public": true
}

Description

If you wish to turn make your project available as a template for internal or public usage you can use the template object. name and desdription must not be unique, but it will be exposed, if public is set to true. If public is set to false you can use the template for youselve only. shortName must be unique to the server to make it seekable. There is no versioning on templates, so the most recent version will be delivered.