Как запустить скрипт node / babel прямо в командной строке?

Мой package.json выглядит так:

{
  "name": "99-nodetest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "babel-node --presets env app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-env": "latest"
  }
}

Скрипт js, который я хочу запустить, это app.js. Я не могу запустить его напрямую, используя узел app.js, потому что app.js содержит новый синтаксис языка.

Таким образом, я должен запустить его через babel, используя npm start, в соответствии со сценарием запуска, определенным выше. Здесь нет проблем.

У меня вопрос, как запустить cmd непосредственно в командной строке, это можно сделать? что-то похожее:

npm run babel-node --presets env app.js

3 ответа

Решение

node ./node_modules/babel-cli/bin/babel-node.js --presets env app.js

РЕДАКТИРОВАТЬ

Обновлено в соответствии с просьбой OP.

Вы можете выполнять двоичные файлы пакетов npm с помощью npx:

npx babel-node --presets env app.js

Великолепные магли! Это было намного сложнее, чем следовало.

Смотрите здесь для документов. TLDR;

Babel> версия 7.0 должна идти в твоем package.json бежать из командной строки.

npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node 

npx babel-node --presets @babel/preset-env imports/test.js 

Установите @babe/node глобально

npm i -g @babel/node

тогда команда babel-node станет доступной в вашем терминале. Итак, вы можете запустить -

babel-node --presets env app.js

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

Вавилонский узел имеет bin зарегистрирован, поэтому исполняемый файл генерируется при установке внутри node_modules/.bin каталог.

Вы можете запустить его, просто набрав.

node_modules/.bin/babel-node --presets env app.js

Который выполняет то же самое, что и дольше node или альтернативный npx версии.

В babel 7 вы можете запустить это:

npx babel app.js

Вы можете запустить app.js файл из node рассказывая это о babel-node первый:

node ./node_modules/.bin/babel-node app.js

со следующими .babelrc файл в корневом проекте

{"presets": ["@babel/preset-env"]}

Другие вопросы по тегам