Вы можете сделать лучше, чем решение для переименования. Прямо сейчас проблема заключается в том, что при вызове tsc
флаг (--watch
) переопределяется значением compilerOptions.watch
, указанным в вашем tsconfig.json
(находится в том же каталоге, в котором вызывается скрипт tsc
). Мы будем использовать функцию, введенную в TypeScript 2.1: configuration inheritance.
Базовая конфигурация, tsconfig.json
(разовый режим)
Напишите все, что типичное поведение должно быть здесь. Это будет наш базовый файл (default) tsconfig
.
{
"compilerOptions": {
"watch": false,
"module": "commonjs",
"target": "es6",
"sourceMap": true,
"inlineSources": true,
"strictNullChecks": true
}
}
Расширение конфигурации tsconfig_w.json
(режим часов)
Теперь мы пишем расширение для него, в котором одно свойство изменения: compilerOptions.watch
переопределяется в true
.
{
"extends": "./tsconfig.json",
"compilerOptions": {
"watch": true
}
}
командной строки вызов tsc
Раньше вы были вызовом tsc
без предоставления каких-либо дополнительных аргументов. Теперь вы должны указать явно, с какого из tsconfig
он должен читать.
Разовые: tsc --project tsconfig.json
(это файл по умолчанию он будет использовать, но давайте быть явным).
Часы: tsc --project tsconfig_w.json
Примечание: --project
флаг был введен в TypeScript 1.8.
Дополнительное для удобства: package.json
Я обычно пишу их как удобные скрипты в моей package.json
:
"scripts": {
"lib": "./node_modules/.bin/tsc --project tsconfig.json",
"libw": "./node_modules/.bin/tsc --project tsconfig_w.json"
}
Вы бы тогда просто запустить npm run lib
или npm run libw
в зависимости от того, какой скрипт вам нужно.
Примечание: Я указал путь к TypeScript локально, а не глобально (поскольку я его не установил глобально).
, пожалуйста, какая разница между tsc и tsc -w? – stackdave
-w - параметр, стоящий для «watch», что означает, что компилятор tsc будет оставаться открытым после компилятора вашего кода и всякий раз, когда изменяется ts-файл внутри вашего проекта, компилятор автоматически перекомпилирует файлы проекта, чтобы ваш проект обновлен. Надеюсь, это поможет! – jlang
спасибо @jlang, но вы знаете, почему в новом учебнике angular2 скрипт запускается дважды tsc: tsc и tsc -w, когда я активно регистрирую, они компилируются дважды; я не нахожу отправки: «start»: «tsc && одновременно» npm run tsc: w \ "\" npm run lite \ "", посмотрите https://angular.io/docs/ts/latest/quickstart.html – stackdave