Suppose I have this directory structure:
public/
js/
lib/
test/
ts/
lib/
ts/
How would I configure it to compile
I ended up getting what I wanted with this layout:
public/
js/
lib/
test/
src/
ts/
lib/
test/
In src/ts/test/tsconfig.json:
"outDir": "../../../public/js"
In src/ts/lib/tsconfig.json:
"outDir": "../../../public/js/lib"
In src/ts/test/test.ts:
/// <reference path="../lib/CoolStuff.ts" />
In Atom, if you're working in src/ts/lib, building will compile those files into public/js/lib.
If you're working in src/ts/test, the build will compile *.ts in test - as well as all files referenced. I don't see a way to prevent referenced file compilation, but at least with this layout they go to the same location.
How would I configure it to compile lib/ts/.ts to public/js/lib/.js and test/ts/.ts to public/js/.js?
If you want to compile test
and public
in a single compilation context then effectively your ts tree is :
test/
ts/
lib/
ts/
Therefore if you use an outDir
of ./public/js
you will get:
public/
js/
test/
ts/
lib/
ts/
This is because the relative nature of lib/ts
to test/ts
needs to be preserved by outDir
. This is a limation in how you are trying to organize your project.
Reorganize your project as
ts/
test/
lib/