Я новичок в TypeScript, и сейчас у меня есть файлы .ts в нескольких местах по структуре моего проекта:
app/
|-scripts/
|-app.ts
|
|-classes/
| |-classA.ts
| |-classB.ts
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
|
|-otherStuff/
|-otherstuffA.ts
Прямо сейчас, когда мои файлы компилируются, они компилируются в тот же каталог, что и файлы .ts:
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
Хотя мне нравится, что файлы .js сохраняют ту же структуру каталогов, что и файлы .ts, я не хочу отслеживать файлы .js в моей VCS, поэтому я хотел бы сохранить все свои файлы JavaScript в отдельное дерево каталогов (которое я затем могу добавить в .gitignore), например:
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
Есть ли где-нибудь параметр или параметр, который скажет компилятору TypeScript сделать это? Кроме того, я не уверен, актуально ли это, но я использую WebStorm.
javascript
typescript
tsc
TheGuyWithTheFace
источник
источник
Ответы:
Используйте параметр
--outDir
tsc (настраивается в наблюдателе файлов в IntelliJ)Из документации командной строки
--outDir DIRECTORY Redirect output structure to the directory.
редактировать
Начиная с Typescript 1.5, это также можно установить в
tsconfig.json
файле:источник
--rootDir
флаг для передачи общей корневой папки транспилятору. Это не позволит ему найти общую корневую папку.Или добавьте
"outDir": "build"
в файл tsconfig.jsonисточник
"outDir": "build"
входит в"compilerOptions"
объект вашего tsconfig.json, а не как свойство верхнего уровня.Хотя эти ответы верны, вам следует подумать, действительно ли вы просто хотите скрыть свои файлы .js из своей среды IDE .
В Visual Studio Code перейдите к
File > Preferences > Settings
или свой.vscode\settings.json
файл и введите:Приведенное выше скрывает файлы .js, для которых существует соответствующий файл .ts.
источник
__dirname
. (Например,.graphql
файл схемы)Если вы хотите отобразить структуру каталогов папки app / scripts в js, я бы предложил использовать следующие настройки для вашего наблюдателя файлов:
источник
Пользователи Intellij, компилируйте Typescript в несколько выходных каталогов
Для пользователей Intellij это может быть полезно. Вот как я заставил это работать с помощью встроенного компилятора Typescript.
Информация об окружающей среде
Пример структуры каталогов
Настройка Intellij
C:\yourUserName\AppData\Roaming\npm\node_modules\typescript\lib
-m amd -t ES6 -outDir E:\myapp\js
E:\myapp\ts\main.ts
Если этот флажок не установлен, все ваши файлы будут пытаться выводить на ваш путь outDir.источник
Я настраиваю package.json так, чтобы при вводе
npm run start
все выводилось вbuild
. Исходные файлы хранятся в форматеsrc
. Файл файла указан--outDir build
.Вы можете исключить каталог сборки в tsconfig.json, хотя, вероятно, в этом нет необходимости, поскольку там только JS:
источник
Я использую Atom с расширением atom-typescript, и мой tsconfig.json выглядит так:
источник
Что касается Grunt, в настоящее время, чтобы сохранить структуру проекта папки dev в производственной среде и не получить неожиданный результат после компиляции файлов, пожалуйста, обратитесь к опции:
См. RootDir в официальной документации grunt-ts.
Я надеюсь, что это поможет кому-то, если они застрянут и получат странный результат в продакшене.
источник