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:
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
.
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:
- C:/Projects/2sxc
2sxc-build.config.json
- the config file which affects all builds
2sxc-ui
- the JS code for 2sxc
2sxc-build.config.json
- a config file which only affects 2sxc-ui
2sxc
- the .net code for 2sxc
eav-server
- the .net code for EAV
eav-ui
- the JS code for the EAV UIs
2sxc-docs
- the git repo with the docs
2sxc-sources
- the git repo which is used to publish JS Source Maps
- ...