Babel Неожиданный экспорт токенов после компиляции - PullRequest
0 голосов
/ 02 марта 2020

Я создал проект с использованием синтаксиса ES6.

Я использую Babel для компиляции файлов синтаксиса ES6 JavaScript, чтобы версия Node.js могла работать.

Однако, когда я пытаюсь выполнить файл (index. js), который, как я полагал, был скомпилирован babel, используя node lib/index.js. Я получаю следующую ошибку: SyntaxError: Unexpected token export.

Я запускаю следующую команду для компиляции моего проекта: ./node_modules/.bin/babel src -d lib. src содержит все мои файлы, которые написаны на ES6.

Он успешно компилирует каталог с сообщением: Successfully compiled 15 files with Babel.

Итак, я не уверен, почему я не могу запустить скомпилированные файлы. Я также впервые использую Babel, поэтому я, возможно, что-то пропустил.

У меня есть следующие файлы, которые, я считаю, важны для Babel:

.babelrc

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

package.json - зависимости dev

"devDependencies": {
    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.8.6",
    "@babel/polyfill": "^7.8.3",
    "@babel/preset-env": "^7.8.6",
    "@babel/register": "^7.8.6",
    "babel-loader": "^8.0.6"
}

Подробное сообщение об ошибке:

/Users/c/Projects/Project1/src/credentials.js:10
export default Credentials;
^^^^^^

SyntaxError: Unexpected token export
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/Users/c/Projects/Project1/lib/index.js:3:53)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

Похоже на lib / index. js, оно ссылается на файл ES6 с помощью строка:

var _credentials = _interopRequireDefault(require("../src/credentials"));.

1 Ответ

0 голосов
/ 02 марта 2020

В локальной среде вы можете просто установить эти пакеты.

npm install @babel/core @babel/node --save-dev

И затем в вашем пакете. json.

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

И .babelr c то же самое у вас уже есть. И это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...