| .. | ||
| browser_shared | ||
| dashboard | ||
| extension | ||
| flags | ||
| graphics | ||
| schemas | ||
| types | ||
| .eslintignore | ||
| .eslintrc.browser.js | ||
| .eslintrc.extension.js | ||
| .eslintrc.js | ||
| .gitignore | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| postinstall.js | ||
| README.md | ||
| tsconfig.browser.json | ||
| tsconfig.extension.json | ||
esa-layouts-shared
A repository which houses several elements that are used by mutiple NodeCG based bundles for our layouts, esa-layouts for example.
This repository is purposefully designed for our use, and can have breaking changes without prior notice. We advise you don't directly use it in any projects.
Basic notes for setup/structure
- This repository is to be used as a submodule, directly in the root of the NodeCG bundle (usually in a directory named
shared). - It requires the bundle to have some specific dependencies and structure; not going to note it all here because it's basically just the stuff from zoton2/nodecg-vue-ts-template which we tend to base bundles using.
- The bundle should have a
postinstallin thepackage.jsonfile:-
"postinstall": "cd shared && node postinstall.js"
-
- You may want to add a
pathto yourtsconfig.*.jsonfiles for ease of development:-
"paths": { "@shared/*": [ "shared/*" ], }
-
- To make sure the above part works, you will also want to add this line in your
extension/index.tsfile:-
require('module-alias').addAlias('@shared', require('path').join(__dirname, '../shared'));
-
- You will want to add these paths to your
tsconfig.browser.jsonin theincludearray:-
"include": [ // esa-layouts-shared "shared/browser_shared/**/*.ts", "shared/browser_shared/**/*.vue", "shared/dashboard/**/*.ts", "shared/dashboard/**/*.vue", "shared/graphics/**/*.ts", "shared/graphics/**/*.vue", "shared/types/**/*.d.ts" ]
-
- You will want to add this path to yoiur
tsconfig.extension.jsonin theincludearray:-
"include": [ `"shared/types/**/*.d.ts" ]
-
- You will want to add these to your
tsconfig.extension.jsonasreferences:-
"references": [ { "path": "./shared/extension/audio-normaliser" }, { "path": "./shared/extension/countdown" }, { "path": "./shared/extension/mediabox" }, { "path": "./shared/extension/music" }, { "path": "./shared/extension/obs" }, { "path": "./shared/extension/rabbitmq" }, { "path": "./shared/extension/video-player" }, { "path": "./shared/extension/x32" }, { "path": "./shared/extension/xkeys-esa" } ]
-
- You will want to add these entries in your
vetur.config.jsin theprojectssection:-
projects: [ // esa-layouts-shared { root: './shared/dashboard', package: '../../package.json', }, { root: './shared/graphics', package: '../../package.json', }, { root: './shared/browser_shared', package: '../../package.json', }, ]
-
- You will want to add this entry in your
.vscode/settings.jsonfile in theeslint.workingDirectoriessection:-
"eslint.workingDirectories": [ "shared" ]
-
- You will want to change the Webpack
resolve.alias.vueconfig to make sure it resolves to the one in the bundle:-
alias: { // vue: 'vue/dist/vue.esm.js', vue: path.resolve(__dirname, 'node_modules/vue/dist/vue.esm.js'), },
-