У меня есть проект Nest JS, созданный из установки по умолчанию, т.е.
$ npm i -g @nestjs/cli
$ nest new project-name
Я поместил файл vanilla JS в папку, которую я назвал static
в root проект. Файл JS содержит массив из javascript объектов (имитирующих источник данных). Я использовал синтаксис ES6 export
, поэтому я могу импортировать файл в файлы Nest JS Typescript. Вот фрагмент файла:
export const pokemons = [
{
"id": 1,
"name": {
"english": "Bulbasaur",
},
"type": [
"Grass",
"Poison"
],
"base": {
"HP": 45,
"Attack": 49,
"Defense": 49,
"Sp. Attack": 65,
"Sp. Defense": 65,
"Speed": 45
}
},
{
"id": 2,
"name": {
"english": "Ivysaur",
},
"type": [
"Grass",
"Poison"
],
...
После запуска программы я получаю SyntaxError: Unexpected token 'export'
. Насколько я понимаю, в документации Nest JS упоминается, что:
Nest использует преимущества новейших языковых функций, поэтому для использования его с vanilla JavaScript нам нужен компилятор Babel.
Хорошо, хорошо. Глядя на инструкции по установке Babel, кажется, что есть 3 шага:
- Выполнение этих команд для установки пакетов:
npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm install --save @babel/polyfill
Создание файла конфигурации с именем babel.config. json в root вашего проекта с этим содержимым:
{
"presets": [
[
"@babel/env",
{
"targets": {
"edge": "17",
"firefox": "60",
"chrome": "67",
"safari": "11.1",
},
"useBuiltIns": "usage",
"corejs": "3.6.4",
}
]
]
}
И выполнение этой команды для компиляции всего вашего кода из каталога sr c в lib:
./node_modules/.bin/babel src --out-dir lib
Я не уверен, как лучше всего включить использование Babel в Nest JS. Все, что мне нужно, это смоделировать файл JS как простое хранилище данных, из которого я могу получать данные, когда HTTP-запросы отправляются на сервер Nest JS. Это просто для целей разработки. Какая бы простая установка позволила мне запустить сервер Nest JS и использовать файл JS с синтаксисом ES6 export
для работы.
Заранее спасибо.