Подтвердить что ты не робот

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

Я использую перехватчик 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)?

4b9b3361

Ответ 1

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

{
  "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"
  }
}

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

Ответ 2

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


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

1.Go в терминале к основному каталогу вашего проекта

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, это зависит от того, какие функции мы хотим использовать

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

Корневой каталог проекта должен выглядеть следующим образом:

  • Проект
    • ЦСИ
      • 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//он запускает watch + start node сервер, при каждом изменении файла он перезапускает сервер node, используя nodemon, который отслеживает изменения каталога dist

9.Наконечные примечания

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

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

npm run serve

II. Простой способ (готов к использованию шаблона)

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

Ответ 3

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

Ответ 4

вам нужно установить babel-register и babel-preset-es2015, который используется в параметрах babel-register to 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

Ответ 5

  1. node -r babel-register scripts.js

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

  1. npx babel-node scripts.js

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

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

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

Ответ 6

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

Вы можете попробовать решение оболочки с помощью babel-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 с функцией script с помощью node es6 thefile.js

Ссылка: официальное использование doc

Ответ 7

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

require("babel-register");

Обязательно установите предустановку babel es2015.