Я пытаюсь запустить команду

tsc *.ts --watch --target ES5

В оболочке Windows cmd, но он не находит мой файл app.ts. Если я войду

 tsc app.ts --watch --target ES5

Оно работает. Так что это символ *, который не распознается оболочкой cmd. У кого-нибудь уже есть эта проблема?

Спасибо.

2
R Lopez 24 Апр 2017 в 23:40

2 ответа

Лучший ответ

Лучше, чем использовать tsc с аргументами, - создать файл tsconfig.json в том же каталоге, что и ваш проект. Вы можете настроить гораздо больше настроек там.

Вставьте эту базовую конфигурацию в файл tsconfig.json:

{
  "compilerOptions": {
    "rootDir": "./"
  }
}

Теперь вы просто запускаете tsc без каких-либо аргументов, и он скомпилирует любой ts файл в каталогах или подкаталогах, где находится tsconfig.json.

Немного более продвинутый конфиг может выглядеть так:

{
  "compilerOptions": {
    "rootDir": "./src",
    "outDir": "./out"
  }
}

Это скомпилирует / перенесет каждый ts файл в каталоге src в каталог out. Структура проекта выглядит следующим образом:

app/
  - app.ts
  - myFunction.ts
out/
  - app.js
  - myFunction.js
tsconfig.json
1
Erik Cupal 24 Апр 2017 в 21:50

Если вы хотите, чтобы tsc просматривал ваши файлы, вам не нужно включать *.ts. Вы можете просто перейти к каталогу, который содержит tsconfig.json и запустить tsc --watch, и он будет работать бесконечно, просматривать любые файлы TypeScript в этом каталоге или любом из его дочерних каталогов и переносить их при обнаружении изменений. Кроме того, в свой вопрос вы добавили --target ES5, вы можете просто поместить это в свой tsconfig.json файл. Я включил довольно стандартный пример, который, я думаю, сработает для того, что вы пытаетесь сделать.

{ "compilerOptions": { "target": "es5", "module": "commonjs", "sourceMap": true } }

В качестве последнего дополнения я видел несколько постов в блоге, в которых утверждается, что вам нужен аргумент *.ts (например, такой: http://michaelcrump.net/quick-tip-with-typescript-and-vscode/, который был опубликован в мае 2015 года), поэтому возможно, что был изменен в какой-то момент в последние несколько лет. К вашему сведению, я работаю с версией 2.3.3 (tsc --version) и могу подтвердить, что tsc --watch делает то, что вы ищете в этой версии.

Надеюсь это поможет!

1
Ian Duckworth 26 Май 2017 в 17:07
43597344