it-swarm.com.ru

Как запустить приложение Node.js с включенными функциями ES6?

Я использую require hook of BabelJS (ранее назывался 6to5) для запуска приложений узла с es6features :

// run.js
require("babel/register");
require("./app.js6");

Я вызываю node run.js для запуска моего app.js6 . Мне нужно установить BabelJS и предоставить run.js для каждого проекта, в котором я хотел бы использовать es6features. Я бы предпочел звонок типа nodejs6 app.js6. Как я могу достичь этой системы самостоятельно (Unix и Windows)?

65
maiermic

Добавьте зависимости babel-cli и babel-preset-es2015 (он же ES6) в файл package.json вашего приложения и определите сценарий start:

{
  "dependencies": {
    "babel-cli": "^6.0.0",
    "babel-preset-es2015": "^6.0.0"
  },
  "scripts": {
    "start": "babel-node --presets es2015 app.js"
  }
}

Затем вы можете просто выполнить следующую команду, чтобы запустить ваше приложение:

npm start

Если вы когда-нибудь решите прекратить использование Babel (например, если Node.js поддерживает все функции ES6), вы можете просто удалить его из package.json:

{
  "dependencies": {},
  "scripts": {
    "start": "node app.js"
  }
}

Одним из преимуществ этого является то, что команда для запуска вашего приложения остается прежней, что помогает, если вы работаете с другими разработчиками.

124
XåpplI'-I0llwlg'I -

Как настроить приложение node.js с поддержкой es6 и перезагрузкой сервера при изменении файла .


Шаги I.Configuration (создание проекта с нуля):

1. Зайдите в терминал в главный каталог вашего проекта

npm init // создаем package.json для проекта

2. Установить зависимости

npm install --save-dev babel
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0 //*1
npm install --save-dev nodemon

1 - это также может быть этап 1 или 2, это зависит от того, какие функции es мы хотим использовать

3. У нас должно быть что-то подобное в файле package.json (наверняка версия пакета будет другой, но это нормально):

"devDependencies": {
  "babel": "^6.5.2",
  "babel-cli": "^6.16.0",
  "babel-preset-es2015": "^6.16.0",
  "babel-preset-stage-0": "^6.16.0",
  "nodemon": "^1.11.0"
}

4. Создайте файл .babelrc в корневой директории проекта (есть файл package.json).

{
 "presets": ["es2015", "stage-0"]
}

5. Создайте две директории:

src - здесь находится рабочий каталог с файлами, записанными в es6

dist - здесь файлы будут компилироваться в es5 с использованием babel

Корневой каталог вашего проекта должен выглядеть так:

  • проект
    • sRC
      • index.js // основной файл проекта
    • расстояние
    • package.json
    • .babelrc

7.Добавьте package.json необходимые команды:

"scripts": {
  "watch": "babel -w src/ -d dist/",
  "build": "babel src/ -d dist/",
  "serve": "babel -w src/ -d dist/ | nodemon --watch dist",
  "test": "echo \"Error: no test specified\" && exit 1"
}

8. Доступные команды:

npm run watch // начинает наблюдать за изменениями в каталоге src и компилирует в dist

npm run build // компилирует файлы из каталога src в dist

npm run serve // он выполняет наблюдение + запуск сервера узлов, при каждом изменении файла он перезапускает сервер узлов с помощью nodemon, который наблюдает за изменениями каталога dist

9. Финальные заметки

  • Сервер будет запускать файл dist/index.js как основной файл.
  • Файл dist/index.js будет скомпилирован из src/index.js, поэтому здесь должен быть основной файл проекта.
  • каталог dist должен быть добавлен для игнорирования git (но не игнорировать его для npm, если это будет пакет узла)

10. Запустите сервер и начните создавать приложение в каталоге src .

npm run serve

II. Более простой способ (готовый образец)

Если для Вас слишком много баллов, то полная пробная версия доступна на github - https://github.com/maciejsikora/node-express-babel-boilerplate .

35
Maciej Sikora

Вы можете использовать узел с флагом --harmony для запуска скрипта с функциями es6

16
Safi
  1. node -r babel-register scripts.js

Это лучшее решение

  1. npx babel-node scripts.js

Узел! ​​Babel не работает должным образом в случае выхода, и пакет kexec также не помогает в этом случае (как я пытался)

В обоих случаях вам нужно использовать .babelrc, который должен описывать пресеты и плагины для вашего приложения.

npx используется только для выполнения библиотек, которые не установлены с npm или yarn. В противном случае вам нужно npm i -g babel-cli, а затем babel-node script.js

6
SerzN1

вам нужно установить babel-register и babel-preset-es2015 предустановку, которая используется в параметрах babel-register для Enabled, преобразует ES6 в ES5 на лету.

 npm install babel-register

 npm install babel-preset-es2015

ваш файл run.js :

// require babel-register and set Babel presets options to es2015
require('babel-register')({
   presets: [ 'es2015' ]
});

require("./app.js6");

Примечание : теперь вам не нужен файл .babelrc для установки параметров Babel presets Поскольку мы устанавливаем его с помощью метода require

6
ahmed hamdy

Я бы предпочел звонок типа nodejs6 app.js6.

Вы можете попробовать оболочку с помощью Babi-Core API:

// Save as es6.js

var babel = require("babel-core");
var argc = process.argv.length;

babel.transformFile(process.argv[argc - 1], function (err, result) {
    eval(result.code);
});

Запустите свой сценарий es6 с node es6 thefile.js

Ссылка : официальная использование документа

3
Jiahao D.

Обратитесь это:

https://stackoverflow.com/a/51485027/1549191

или этот шаблон:

Boilerplate: node-es6

1
Priyanshu Chauhan

Начиная с версии 6, вы должны установить babel-register и использовать следующее

require("babel-register");

Не забудьте также установить предустановку babel es2015.

1
Chiedo