2017-01-25 4 views
3

Ну, я просто хотел знать, есть ли какая-либо команда, которая будет напрямую компилировать код машинописного текста и получать результат. Прямо сейчас, что я делаю, каждый раз, когда я внести изменения в файл я должен повторно выполнить команду Симметричного скомпилироватьКак скомпилировать машинописный текст с помощью команды npm?

НПМ начать

Это запускает браузер, а затем я должны остановить выполнение с помощью Ctrl + C, а затем я должен запустить файл с помощью команды НПМ

узла файла

чтобы увидеть выход.

Так что я хочу знать, есть ли команда НПМ, которая будет компилировать файл .ts и увидеть те изменения, которые я сделал в файле в то время как я запустить файл, используя имя файла в

узла

команда

+0

Вы должны прочитать о бегущих задачах или просто добавить 'tsc app.ts' в' npm start' 'package.json' –

ответ

11

Вы можете запустить tsc команду (машинопись компилятор) с --watch аргументом.

Вот идея:

  • Настройка машинопись с помощью tsconfig.json файла
  • Run tsc --watch, поэтому каждый раз, когда вы меняете .ts файл, tsc будет компилировать его и производить вывод (скажу вы настроили транскрипт поместите вывод в папку ./dist)
  • Используйте nodemon, чтобы посмотреть, изменились ли файлы в ./dist и при необходимости перезапустить сервер.

Вот некоторые скрипты (положить в package.json), которые могут помочь вам сделать это (вам нужно будет установить следующие модули npm install --save typescript nodemon npm-run-all rimraf)

"scripts": { 
    "clean": "rimraf dist", 
    "start": "npm-run-all clean --parallel watch:build watch:server --print-label", 
    "watch:build": "tsc --watch", 
    "watch:server": "nodemon './dist/index.js' --watch './dist'" 
} 

Тогда вам просто нужно запустить npm start в терминал

+1

Это не работает для меня, потому что' nodemon' пытается запустить сервер до ' часы: build' задача завершена. Я получаю сообщение от nodemon: «Не могу найти модуль» .../dist/index.js' – demisx

2

Это основано на решении, предложенном @ThomasThiebaud. Мне пришлось немного изменить его, чтобы файлы были построены в dist/, прежде чем nodemon попытается запустить сервер.

"scripts": { 
    "clean": "rimraf dist", 
    "build": "tsc", 
    "watch:build": "tsc --watch", 
    "watch:server": "nodemon './dist/index.js' --watch './dist'", 
    "start": "npm-run-all clean build --parallel watch:build watch:server --print-label" 
    }, 

Вам все еще нужно запустить npm start, чтобы начать все это.

Смежные вопросы