Компиляция кода TypeScript (Node.js)
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Используйте пакет npm TypeScript, чтобы добавить поддержку TypeScript в проекты на основе системы проектов JavaScript (JSPS) или .esproj. Начиная с Visual Studio 2019, рекомендуется использовать пакет npm вместо пакета SDK TypeScript. Пакет npm TypeScript обеспечивает большую переносимость на разных платформах и средах.
Для проектов ASP.NET Core используйте пакет NuGet вместо npm для добавления поддержки TypeScript.
Добавление поддержки TypeScript с использованием npm
Пакет npm TypeScript позволяет включить поддержку TypeScript. Когда в проект устанавливается пакет npm или TypeScript 2.1 или более новой версии, в редактор загружается соответствующая версия языковой службы TypeScript.
- Следуя инструкциям, установите рабочую нагрузку разработки Node.js и среду выполнения Node.js. Для простой интеграции с Visual Studio создайте проект с помощью одного из шаблонов Node.js для TypeScript, например шаблона пустого веб-приложения Node.js. Либо используйте шаблон Node.js для JavaScript, предоставляемый в Visual Studio, и следуйте инструкциям в этом разделе. Или используйте проект Открытая папка
- Установите пакет npm для TypeScript, если он еще не включен в ваш проект. В Обозревателе решений (область справа) откройте package.json в корневом каталоге проекта. Перечисленные пакеты соответствуют пакетам в узле npm в Обозревателе решений. Дополнительные сведения см. в разделе Управление пакетами npm. Установить пакет npm TypeScript для проекта Node.js можно с помощью командной строки или IDE. Чтобы установить пакет с помощью IDE, щелкните правой кнопкой мыши узел npm в Обозревателе решений, выберите Установить новый пакет npm, найдите TypeScript и установите пакет. Выберите параметр npm в окне Вывод, чтобы видеть ход установки пакета. Установленный пакет появится в узле npm в Обозревателе решений.
- Если пакет не включен в проект, добавьте файл с tsconfig.json в корневой каталог проекта. Для этого щелкните правой кнопкой мыши узел проекта и выберите Добавить > Новый элемент. Выберите Файл конфигурации TypeScript JSON, а затем нажмите кнопку Добавить. Если вы не видите все шаблоны элементов, выберите «Показать все шаблоны» и выберите шаблон элемента. Visual Studio добавит файл tsconfig.json в корневую папку проекта. Этот файл можно использовать для настройки параметров компилятора TypeScript.
- Откройте файл tsconfig.json и обновите его, задав необходимые параметры компилятора. Ниже приведен пример простого файла tsconfig.json.
< "compilerOptions": < "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "outDir": "dist" >, "include": [ "scripts/**/*" ] >
- include указывает компилятору, где искать файлы TypeScript (*.ts).
- Параметр outDir указывает выходную папку для обычных файлов JavaScript, которые преобразуются компилятором TypeScript.
- Параметр sourceMap указывает, нужно ли компилятору создать файлы sourceMap.
В приведенной выше конфигурации представлен пример базовой конфигурации TypeScript. Сведения о других параметрах см. в разделе о файле tsconfig.json.
Сборка приложения
- В проект добавьте файлы TypeScript (.ts) или TypeScript JSX (.tsx), а затем добавьте код TypeScript. Ниже приведен простой пример TypeScript:
let message: string = 'Hello World'; console.log(message);
"scripts": < "build": "tsc --build", "clean": "tsc --build --clean" >,
Для сборки с помощью стороннего средства, например webpack, можно добавить в файл package.json скрипт сборки для командной строки:
"scripts":
Пример использования webpack с React и файла конфигурации webpack см. в статье Учебник. Создание приложения Node.js и React в Visual Studio.
Пример использования Vue.js с TypeScript см. в статье Создание приложения Vue.js.
Примечание. При настройке сторонних средств в проектах Node.js не используются пути, заданные в разделе Средства>Параметры>Проекты и решения>Управление веб-пакетами>Внешние веб-инструменты. Эти параметры используются для проектов других типов.
Выполнение приложения
Инструкции по запуску приложения после его компиляции см. в разделе Создание приложения Node.js и Express.
Автоматизация задач сборки
Для автоматизации задач сторонних средств, таких как npm и webpack, вы можете использовать обозреватель запускателя задач в Visual Studio.
- Запускатель задач npm включает поддержку скриптов npm, определенных файле package.json. Поддерживает YARN.
- Запускатель задач webpack включает поддержку webpack.
Запуск двух файлов через ts-node
Есть файлик foo.ts, и запускаю программу командой ts-node src/foo.ts , но он стал слишком большой, и хочется его разбить. Вынес во второй файл, и запускается ts-node src/bar.ts . Можно ли запустить сразу два файла одной командой?
Отслеживать
задан 26 авг 2020 в 17:59
437 4 4 серебряных знака 23 23 бронзовых знака
через тот же npm, к примеру, можно
26 авг 2020 в 18:03
@InDevX имеете ввиду два дочерних процесса?
26 авг 2020 в 18:09
Нет. Имею ввиду добавить run-script комманду можно
26 авг 2020 в 18:26
Я вот как раз таки и не знаю как написать такую команду =)
26 авг 2020 в 18:29
в package.json есть секция script. Туда вписываешь свою комманду, аля «start»: «ts-node src/file1.ts && ts-node src/file2.ts», и потом запустить можно npm run start
26 авг 2020 в 18:37
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Если нужно одновременно запускать обе программы то решение такое:
установи https://www.npmjs.com/package/concurrently и тогда в package.json можно будет записать такой пускач:
"scripts": < "task1": "ts-node src/file1.ts", "task2": "ts-node src/file2.ts", "start": "concurrently \"yarn task1\" \"yarn task2\"" >,
Если программы нужно запускать по очереди то сгодится такой пускач:
"scripts": < "start": "ts-node src/file1.ts && ts-node src/file2.ts" >,
Отслеживать
ответ дан 27 авг 2020 в 7:39
11.9k 5 5 золотых знаков 28 28 серебряных знаков 40 40 бронзовых знаков
- node.js
- typescript
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
ts-node Запуск файлов с импортом .js файлов без указания расширения для файлов javascript ESM
![]()
Файл run.ts в котором, есть импорты .js файлов без указания расширения, можно запустить так (используем пакет ts-node):
node --experimental-specifier-resolution=node --loader ts-node/esm run.ts
При этом tsdonfig.json (у вас может отличаться):
< "compilerOptions": < "allowJs": true, "target": "es6", "module": "es2020", "sourceMap": true , "moduleResolution":"node", "isolatedModules": true, "esModuleInterop": true >, "include": ["./src/**/*", "./tests/**/*"] >
И в package.json:
"type": "module",
Key Words for FKN + antitotal forum (CS VSU):
- ts-node
- allow js importing without file extention
- typescript
- nodejs
- esm
TypeScript c Node.js¶
С самого начала TypeScript имел первоклассную поддержку для Node.js. Вот как быстро настроить проект Node.js:
Многие из этих шагов на самом деле являются стандартными шагами по настройке Node.js
- Настройте Node.js package.json . По-быстрому: npm init -y
- Добавьте TypeScript ( npm install typescript —save-dev )
- Добавьте node.d.ts ( npm install @types/node —save-dev )
- Инициализируйте tsconfig.json для параметров TypeScript с помощью нескольких ключевых параметров в вашем файле tsconfig.json ( npx tsc —init —rootDir src —outDir lib —esModuleInterop —resolveJsonModule —lib es6,dom —module commonjs )
Это оно! Запустите вашу IDE (например, code . ) и поиграйтесь. Теперь вы можете использовать все встроенные модули узлов (например, import * as fs from ‘fs’; ) со всей надёжностью и эффективностью разработчика в TypeScript!
Весь ваш код TypeScript пойдёт в src , а сгенерированный JavaScript — в lib .
Бонус: компиляция на лету + запуск¶
- Добавьте ts-node , который мы будем использовать для компиляции на лету + для запуска в node ( npm install ts-node —save-dev )
- Добавьте nodemon , который будет вызывать ts-node при каждом изменении файла ( npm install nodemon —save-dev )
Теперь просто добавьте script к вашему package.json , беря стартовой точкой вашего приложения, например, index.ts :
1 2 3 4 5
"scripts": "start": "npm run build:live", "build": "tsc -p .", "build:live": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts" >,
Теперь вы можете запустить npm start и отредактировать index.ts :
- nodemon перезапускает свою команду ( ts-node )
- ts-node автоматически транспилирует код, подхватив tsconfig.json и установленную версию TypeScript,
- ts-node запускает выводимый JavaScript через Node.js.
А когда вы будете готовы задеплоить свое приложение JavaScript, запустите npm run build .
Бонусный пункт¶
Такие модули NPM прекрасно работают с browserify (используя tsify) или webpack (используя ts-loader).