This describes how the configuration files work in building 2sxc.

It's meant for 2sxc 16.04 and is currently under development. 

Basics

There are two special json files:

  1. 2sxc-build.config.json - this file does not exist by default, since it shouldn't be checked into github. It is explicitly excluded for git, as you could/should create it yourself, typically based on the 2sxc-build-template.config.json
  2. 2sxc-build-fallback.config.json - this is the fallback (think default-if-main-file-doesn't-exist) build configuration and will typically result in building the solution to the local /dist folder (or ??? for .net code)

These files contain zero or more paths to deploy the build result, such as

  • JavaScript targets (eg. the C:\Projects\2sxc\2sxc-dnn9113\Website\DesktopModules\ToSIC_SexyContent\dist)
  • Dnn/Evoq website targets (eg. C:/Projects/2sxc/Website/)
  • Oqtane website targets
  • Public JS Source-Maps targets

File Contents

{
"JsTargets": [
"c:/projects/2sxc/2sxc-dnn9113/DesktopModules/ToSic_SexyContent"
],
"DnnTargets": [
"c:/projects/2sxc/2sxc-dnn961/Website",
"c:/projects/2sxc/2sxc-evoq911/Website"
],
"OqtaneTargets": [],
"Sources": [
"c:/Projects/2sxc/2sxc-sources"
]
}

Tips / Conventions

  • The 2sxc-build.config.json  file is local to your system, and should never be pushed to github.
  • For folders, always use forward slashes - c:\Projects 👎🏽; c:/projects 👍🏽 
  • Always use full folders and not relative paths.
  • Always end the path without as slash as one will be added by build
  • All nodes are always arrays so you can add many targets

File Location

The build systems in .net and JS will search the directory tree starting from the current folder and going up till the root. This allows you to use one single config file for all projects at the same time, eg. in this structure:

  1. C:/Projects/2sxc
    1. 2sxc-build.config.json - the config file which affects all builds
    2. 2sxc-ui - the JS code for 2sxc
      1. 2sxc-build.config.json - a config file which only affects 2sxc-ui
    3. 2sxc - the .net code for 2sxc
    4. eav-server - the .net code for EAV
    5. eav-ui - the JS code for the EAV UIs
    6. 2sxc-docs - the git repo with the docs
    7. 2sxc-sources - the git repo which is used to publish JS Source Maps
    8. ...