Как я могу остановить сборку ParcelJS, если компиляция TypeScript не удалась?

Если я напишу недопустимый TypeScript, VSCode сообщит об ошибке, но ParcelJS все равно продолжит сборку.

Есть опция noEmitOnError для командной строки tsc или tsconfig.json. Однако у меня нет доступа к командной строке, и изменение tsconfig.json не работает.


person André Willik Valenti    schedule 17.05.2020    source источник
comment
Помог ли мой ответ?   -  person Ben Smith    schedule 23.05.2020
comment
@BenSmith, я ценю ваш ответ, он близок, но не совсем то, что мне нужно. Я запускаю сценарий parcel src/start.html, он постоянно отслеживает изменения файловой системы и автоматически перезагружает код. Я хочу такое поведение вместе с проверкой TypeScript.   -  person André Willik Valenti    schedule 25.05.2020
comment
Ах я вижу. В своем вопросе вы не упомянули, что это было для наблюдаемой сборки! Я проведу небольшое расследование, чтобы узнать, могу ли я чем-то помочь.   -  person Ben Smith    schedule 26.05.2020


Ответы (1)


В вашем файле package.json вы можете связать выполнение скриптов.

Итак, чтобы остановить запуск ParcelJS, если в вашем TypeScript есть ошибки, у вас может быть:

"scripts": {
    "build": "tsc --noEmit && parcel index.html",
}

(Обратите внимание, что я не тестировал это, но он должен работать, если исходный файл - index.html)

Двойной амперсанд обеспечивает последовательное выполнение скриптов; использование одного амперсанда вызовет параллельное выполнение.

В качестве альтернативы вы можете использовать run-s в инструменте интерфейса командной строки npm-run-all, например

"scripts": {
    "tsc": "tsc --noEmit && parcel index.html"
    "build": "parcel index.html",
    "tscThenBuild": "run-s tsc build",
}

Это полезно, если вы хотите получить доступ к скриптам (например, для tsc и build) по отдельности.

person Ben Smith    schedule 17.05.2020