«Неожиданный импорт токена» в Nodejs5 и babel?

В js-файле я использовал импорт вместо запроса

import co from 'co'; 

И попытался запустить его непосредственно nodejs, так как он сказал, что импорт – это функции доставки и поддержка без какого-либо флага времени выполнения ( https://nodejs.org/en/docs/es6/ ), но я получил ошибку

 import co from 'co'; ^^^^^^ SyntaxError: Unexpected token import 

Затем я попытался использовать babel

 npm install -g babel-core npm install -g babel-cli npm install babel-core //install to babel locally, is it necessary? 

и управляется

 babel-node js.js 

все еще такая же ошибка, неожиданный импорт токена?

Как я могу избавиться от него?

От babel 6 Примечания к выпуску:

Поскольку Babel сосредотачивается на том, чтобы быть платформой для инструментов JavaScript, а не транспилером ES2015, мы решили сделать все плагины включенными. Это означает, что при установке Babel он больше не будет транслировать ваш код ES2015 по умолчанию.

В моей настройке я установил предустановку es2015

 npm install --save-dev babel-preset-es2015 

или с пряжей

 yarn add babel-preset-es2015 --dev 

и включил пресет в моем .babelrc

 { "presets": ["es2015"] } 

Пока модули не будут реализованы, вы можете использовать «транспилер» Babel для запуска вашего кода:

 npm install --save babel-cli babel-preset-node6 

а потом

 ./node_modules/babel-cli/bin/babel-node.js --presets node6 ./your_script.js 

Если вы не хотите вводить --presets node6 вы можете сохранить его .babelrc файл:

 { "presets": [ "node6" ] } 

См. https://www.npmjs.com/package/babel-preset-node6 и https://babeljs.io/docs/usage/cli/

  1. Установить пакеты: babel-core , babel-polyfill , babel-preset-es2015
  2. Создать .babelrc с содержимым: { "presets": ["es2015"] }
  3. Не помещайте инструкцию import в свой основной файл записи, используйте другой файл, например: app.js и ваш файл главной записи должен app.js babel-core/register и babel-polyfill чтобы babel-polyfill работал отдельно в первую очередь перед чем-либо еще. Тогда вам может потребоваться приложение app.js где app.js import .

Пример:

index.js

 require('babel-core/register'); require('babel-polyfill'); require('./app'); 

app.js

 import co from 'co'; 

Он должен работать с node index.js .

babel-preset-es2015 теперь устарел, и вы получите предупреждение, если попытаетесь использовать решение Лоуренса.

Чтобы это работало с Babel 6.24.1+, вместо этого используйте babel-preset-env :

 npm install babel-preset-env --save-dev 

Затем добавьте env в свои пресеты в вашем .babelrc :

 { "presets": ["env"] } 

Дополнительную информацию см. В документах Babel .

Возможно, вы используете нескомпилированные файлы. Начнем чисто!

В рабочем каталоге создайте:

  • Две папки. Один для предварительно скомпилированного кода es2015. Другой для выхода бабуля. Мы назовем их «src» и «lib» соответственно.
  • Файл package.json со следующим объектом:

     { "scripts": { "transpile-es2015": "babel src -d lib" }, "devDependencies": { "babel-cli": "^6.18.0", "babel-preset-latest": "^6.16.0" } } 
  • Файл с именем «.babelrc» со следующими инструкциями: {"presets": ["latest"]}

  • Наконец, напишите тестовый код в файле src / index.js. В вашем случае: import co from 'co'.

Через консоль:

  • Установите пакеты: npm install
  • Переместите исходный каталог в выходной каталог с помощью флага -d (aka -out-dir), который уже указан в нашем пакете. npm run transpile-es2015 : npm run transpile-es2015
  • Запустите свой код из выходного каталога! node lib/index.js

если вы используете пресет для реакции-native, он принимает импорт

 npm i babel-preset-react-native --save-dev 

и поместите его в свой файл .babelrc

 { "presets": ["react-native"] } 

в корневом каталоге проекта

https://www.npmjs.com/package/babel-preset-react-native

Текущий метод заключается в использовании:

npm install --save-dev babel-cli babel-preset-env

А затем в .babelrc

 { "presets": ["env"] } 

эта установка поддерживает Babel для последней версии js (es2015 и выше). Проверьте babeljs

Не забудьте добавить babel-node в свои скрипты внутри package.json используя при запуске js-файл следующим образом.

 "scripts": { "test": "mocha", //Add this line to your scripts "populate": "node_modules/babel-cli/bin/babel-node.js" }, 

Теперь вы можете npm populate yourfile.js внутри терминала.

Если вы работаете с windowsми и запускаете внутреннюю или внешнюю команду с ошибкой, используйте узел infront скрипта, как показано ниже.

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

Затем npm run populate

  • install -> “npm i –save-dev babel-cli babel-preset-es2015 babel-preset-stage-0”

следующий в файле package.json добавить в скрипты «start»: «babel-node server.js»

  { "name": "node", "version": "1.0.0", "description": "", "main": "server.js", "dependencies": { "body-parser": "^1.18.2", "express": "^4.16.2", "lodash": "^4.17.4", "mongoose": "^5.0.1" }, "devDependencies": { "babel-cli": "^6.26.0", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-0": "^6.24.1" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "babel-node server.js" }, "keywords": [], "author": "", "license": "ISC" } 

и создать файл для babel, в root “.babelrc”

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

и запустить запуск npm в терминале

Примите во внимание следующие шаги для решения проблемы:

1) Установите CLI и предустановку env

 $ npm install --save-dev babel-cli babel-preset-env 

2) Создайте файл .babelrc

 { "presets": ["env"] } 

3) настроить запуск npm в package.json

 "scripts": { "start": "babel-node ./server/app.js", "test": "echo \"Error: no test specified\" && exit 1" } 

4) затем запустите приложение

 $ npm start 

@jovi все, что вам нужно сделать, это добавить файл .babelrc следующим образом:

 { "plugins": [ "transform-strict-mode", "transform-es2015-modules-commonjs", "transform-es2015-spread", "transform-es2015-destructuring", "transform-es2015-parameters" ] } 

и установите эти плагины как devdependences с npm.

затем попробуйте babel-node ***. js снова. надеюсь, это может вам помочь.

Для решения проблемы я выполнил следующее (сценарий ex.js)

проблема

 $ cat ex.js import { Stack } from 'es-collections'; console.log("Successfully Imported"); $ node ex.js /Users/nsaboo/ex.js:1 (function (exports, require, module, __filename, __dirname) { import { Stack } from 'es-collections'; ^^^^^^ SyntaxError: Unexpected token import at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:152:10) at Module._compile (module.js:624:28) at Object.Module._extensions..js (module.js:671:10) at Module.load (module.js:573:32) at tryModuleLoad (module.js:513:12) at Function.Module._load (module.js:505:3) at Function.Module.runMain (module.js:701:10) at startup (bootstrap_node.js:194:16) at bootstrap_node.js:618:3 

решение

 # npm package installation npm install --save-dev babel-preset-env babel-cli es-collections # .babelrc setup $ cat .babelrc { "presets": [ ["env", { "targets": { "node": "current" } }] ] } # execution with node $ npx babel ex.js --out-file ex-new.js $ node ex-new.js Successfully Imported # or execution with babel-node $ babel-node ex.js Successfully Imported 

Вы должны использовать babel-preset-env и nodemon для горячей перезагрузки.

Затем создайте файл .babelrc с содержимым ниже:

 { "presets": ["env"] } 

Наконец, создайте скрипт в package.json:

 "scripts": { "babel-node": "babel-node --presets=env", "start": "nodemon --exec npm run babel-node -- ./index.js", "build": "babel src -d dist" } 

Или просто используйте этот шаблон:

Бойлер: node-es6

Я столкнулся с подобным вопросом, что я сделал

Я устанавливаю nodemon, так что сервер перезагружается.

Команда: npm install nodemon –save

тогда

В файле Package.json то, что я сделал, находится в стартовом скрипте

Я добавил эту строку

 "scripts": { "start": "nodemon ./index.js --exec babel-node", } 

и он работал как ожидалось

В своем приложении вы должны объявить свои модули require() , не используя ключевое слово «import»:

 const app = require("example_dependency"); 

Затем создайте файл .babelrc:

 { "presets": [ ["es2015", { "modules": false }] ] } 

Затем в вашем gulpfile обязательно объявите свои модули require() :

 var gulp = require("gulp"); 
  • npm install vs. update - какая разница?
  • Равномерность набора тестов chai не работает должным образом
  • Лучший модуль узла для синтаксического анализа XML
  • Есть ли способ скомпилировать исходные файлы node.js?
  • Время ожидания ответа Express.js
  • как указать локальные модули как зависимости пакетов npm
  • Когда используется пул streamов?
  • Является ли NodeJS действительно однопоточным?
  • Отключение HAProxy + WebSocket
  • Запрос после заполнения в Mongoose
  • Почему node.js не может работать на общем хостинге?
  • Давайте будем гением компьютера.