Sou bastante novo no TypeScript e agora tenho arquivos .ts em vários lugares em toda a estrutura do meu projeto:
app/
|-scripts/
|-app.ts
|
|-classes/
| |-classA.ts
| |-classB.ts
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
|
|-otherStuff/
|-otherstuffA.ts
Agora, quando meus arquivos são compilados, eles são compilados no mesmo diretório em que os arquivos .ts estão:
app/
|-scripts/
|-app.ts
|-app.js
|
|-classes/
| |-classA.ts
| |-classB.ts
| |-classA.js
| |-classB.js
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
| |-controllerA.js
| |-controllerB.js
|
|-otherStuff/
|-otherstuffA.ts
|-otherStuffA.js
Embora eu goste da maneira como os arquivos .js mantêm a mesma estrutura de diretório dos arquivos .ts, não quero rastrear os arquivos .js em meu VCS, então gostaria de manter todos os meus arquivos JavaScript em um árvore de diretórios separada (que posso adicionar a .gitignore), assim:
app/
|-scripts/
| |-app.ts
| |
| |-classes/
| | |-classA.ts
| | |-classB.ts
| |
| |-controllers/
| | |-controllerA.ts
| | |-controllerB.ts
| |
| |-otherStuff/
| |-otherstuffA.ts
|
|-js/
|-app.js
|
|-classes/
| |-classA.js
| |-classB.js
|
|-controllers/
| |-controllerA.js
| |-controllerB.js
|
|-otherStuff/
|-otherstuffA.js
Existe uma configuração ou opção em algum lugar que dirá ao compilador TypeScript para fazer isso? Além disso, não tenho certeza se é relevante, mas estou usando o WebStorm.
javascript
typescript
tsc
TheGuyWithTheFace
fonte
fonte
Respostas:
Use a opção
--outDir
tsc (configurada no File Watcher no IntelliJ)Da documentação da linha de comando
--outDir DIRECTORY Redirect output structure to the directory.
Editar
Desde Typescript 1.5, isso também pode ser definido no
tsconfig.json
arquivo:fonte
--rootDir
sinalizador para passar uma pasta raiz comum para o transpiler. Isso evita que ele encontre uma pasta raiz comum.Ou adicione
"outDir": "build"
ao arquivo tsconfig.jsonfonte
"outDir": "build"
vai no"compilerOptions"
objeto do seu tsconfig.json, não como uma propriedade de nível superior.Embora essas respostas estejam corretas, você deve considerar se realmente deseja apenas ocultar seus arquivos .js de seu IDE .
No Visual Studio Code, vá para
File > Preferences > Settings
ou seu.vscode\settings.json
arquivo e digite:O código acima oculta os arquivos .js onde existe um arquivo .ts correspondente.
fonte
__dirname
. (Por exemplo, um.graphql
arquivo de esquema)Se você gosta de mapear a estrutura de diretório da pasta app / scripts em js, sugiro usar as seguintes configurações para o inspetor de arquivos:
fonte
Usuários do Intellij, compilem o Typescript para vários diretórios de saída
Para usuários do Intellij, isso pode ser útil. Foi assim que fiz isso funcionar usando o compilador Typecript integrado.
Informação do ambiente
Exemplo de estrutura de diretório
Configuração Intellij
C:\yourUserName\AppData\Roaming\npm\node_modules\typescript\lib
-m amd -t ES6 -outDir E:\myapp\js
E:\myapp\ts\main.ts
Se não estiver marcada, todos os seus arquivos tentarão a saída para o caminho outDir.fonte
Eu configuro o package.json assim para que digitar
npm run start
tudo parabuild
. Os arquivos de origem são mantidos emsrc
. O arquivo de saída é especificado por--outDir build
.Você pode excluir seu diretório de construção em tsconfig.json, embora provavelmente não seja necessário, já que há apenas JS lá:
fonte
Estou usando o Atom com a extensão atom-typescript e meu tsconfig.json se parece com isto:
fonte
Com relação ao Grunt, atualmente, para salvar a estrutura do projeto da pasta dev em produção e não obter um resultado inesperado após a compilação dos arquivos, consulte a opção:
Veja o rootDir opção nos documentos oficiais do grunt-ts.
Espero que ajude alguém se travar e conseguir um resultado estranho na produção.
fonte