1.a Какой пресет нужен?
Сначала вам нужно будет установить Babel с npm install babel-core --save-dev
в корневом каталоге вашего проекта, используя окно терминала, такое как командная строка.
После установки вам нужно будет установить предустановку es2015 с помощью npm install babel-preset-es2015 --save-dev
. Babel-Core совместим с Promises/A+, но не идеально для использования из-за плохой обработки ошибок, поэтому для этой цели следует использовать такую библиотеку, как Bluebird. Для транспиляции по-прежнему необходимо установить babel-core, а es2015 позволяет транспилировать ES6-> ES5, поэтому вы можете использовать причудливые вещи, такие как let и const и т. д.
1.b Где поставить require("babel-core");
?
вместо этого используйте require("babel-core/register");
и поместите его в свой файл Entry, который обычно называется "server.js". Файл server.js должен будет использовать исключительно CommonJS (ES5).
Используя оператор "require", он применит все соответствующие преобразования ко всему коду, необходимому в файле Entry, и ко всем файлам, которые требуются/включаются в эти файлы.
Вы указываете на файл Entry внутри package.json в разделе "main":
.
Package.json создается, когда вы инициализируете проект с помощью npm init
в корневом каталоге вашего проекта в окне терминала.
Один из подходов к этому:
- Файл ввода — server.js
- server.js — требуется {babel-core и основной файл ES6: config.js/jsx/es6/es}
- config.es6 — использует ES6 и включает (требует) все остальные файлы проекта, которые также могут использовать ES6, поскольку они транспилируются путем загрузки в файл "config", который напрямую транспилируется babel-core.
2. Что такое .babelrc?
.babelrc
— это имя файла, которое должно быть помещено в ту же папку, что и ваш файл package.json (обычно это корневой каталог), и будет автоматически «загружаться», когда требуется babel-core, чтобы определить, какие предустановки или плагины следует использовать.
Внутри .babelrc
вам нужно будет добавить следующий код:
{
"presets": ["es2015"]
}
3. Секция тестирования pg-promise
Прямая цитата от разработчика недавно ответила на это
Вам не нужно беспокоиться о шагах в тестах, используйте только шаги в установке. Один в тестах относится к установке зависимостей dev для запуска тестов. pg-promise может работать с любой библиотекой обещаний, совместимой со спецификацией Promises/A+.
4. Стандартная структура файлов/папок для серверных проектов?
Не существует стандартного способа выполнить эту задачу, поскольку каждый проект имеет уникальные требования. Хорошей отправной точкой будет размещение файла Entry в корневом каталоге проекта, файла ES6 Config в подпапке «scripts» или «src» и отдельных компонентов. в папках ниже этого.
e.g.
- КОРЕНЬ/server.js
- КОРЕНЬ/src/config.es6
- КОРЕНЬ/src/component1/files.es6
- КОРЕНЬ/src/component2/files.es6
Благодаря этому Babel успешно перенесет все ES6 в ES5 и обеспечит поддержку обещаний, совместимых с A+.
Чтобы начать использовать веб-сервер node.js, это руководство дает немного больше информации, и в контексте этого ответа показанный код будет помещен в файл ES6 config.es6, а следующий код будет помещен в файл Entry server.js:
require("babel-core/register");
require("./src/config.es6");
Процесс создания изоморфных веб-приложений отличается от этого и, вероятно, будет использовать такие вещи, как grunt, gulp, webpack, babel-loader и т. д., другим примером которых может быть Найти здесь.
Этот ответ представляет собой комбинацию нескольких ключевых моментов, полученных из других ответов на этот вопрос, а также вклада опытных разработчиков и моих личных исследований и испытаний. Спасибо всем, кто помогал в создании этого ответа.
person
Jax Cavalera
schedule
11.11.2015