Javascript - неожиданный токен & ldquo; export & rdquo; при попытке экспортировать объект по умолчанию [duplicate]

Я не могу дать вам рабочий код, используя java naming ldap. Я использовал Spring LDAP и так, как вы это делаете: получите объект User, выполните поиск по имени пользователя как sAMAccountName = USERNAME

. После того, как вы получите объект, вы возвращаете элемент propertyOf -> это будет список и проверить конкретный в Java.

Это единственный способ, о котором я мог думать.

54
задан str 11 July 2016 в 07:32
поделиться

3 ответа

Чтобы использовать ES6, добавьте babel-preset-env

и в свой .babelrc:

{
  "presets": ["env"]
}
0
ответ дан jalal246 17 August 2018 в 10:06
поделиться
  • 1
    Не объясняет, почему, что такое Babel, как это работает, что это за ... – monsto 8 April 2018 в 04:28
  • 2
    его вопрос не об объяснении Babel. Итак, почему нужно отвечать на что-то, что не требуется, что может смутить другого? – jalal246 24 April 2018 в 14:18
  • 3
    @monsto этот вопрос уже был помечен автором babel. В то время как ответ Фила Рикетса разъясняет проблему, и это хорошо, этот ответ является прямым решением проблемы автора. – boycy 24 April 2018 в 15:00

Вы используете синтаксис модуля ES6.

Это означает, что ваша среда (например, node.js) должна поддерживать синтаксис модуля ES6.

NodeJS использует синтаксис модуля CommonJS (module.exports). не синтаксис модуля ES6 (ключевое слово export).

Решение:

  • Используйте пакет babel npm, чтобы передать ваш ES6 на цель commonjs

или

  • Рефакторинг с синтаксисом CommonJS.
95
ответ дан jaysoifer 17 August 2018 в 10:06
поделиться
  • 1
    Когда nodejs поддерживают import изначально? Я думал, что v10.0.0 будет иметь это, но, по-видимому, нет. – chovy 30 April 2018 в 20:42
  • 2
    @chovy экспериментальная поддержка доступна с флагом «экспериментальные модули». Файлы должны иметь расширение .mjs – Giovanni P. 6 May 2018 в 22:44

Если вы получите эту ошибку, это также может быть связано с тем, как вы включили файл javascript на свою страницу html. При загрузке модулей вы должны явно объявлять эти файлы как таковые. Вот пример:

//module.js:
function foo(){
   return "foo";
}

var bar = "bar";

export { foo, bar };

Когда вы включаете скрипт следующим образом:

<script src="module.js"></script>

Вы получите сообщение об ошибке:

Uncaught SyntaxError : Неожиданный экспорт токена

Вам нужно включить файл с атрибутом типа, установленным в «module»:

<script type="module" src="module.js"></script>

И тогда он будет работать так, как ожидалось, и вы готовы импортировать ваш модуль в другом модуле:

import { foo, bar } from  "./module.js";

console.log( foo() );
console.log( bar );
22
ответ дан Wilt 17 August 2018 в 10:06
поделиться
  • 1
    в отличие от "most-upvoted" ответ, это фактически решает проблему и объясняет, почему это происходит, не предполагая, что единственный вариант - использовать метод CommonJS, метод APM или преобразовать наш код ... Это также было бы исключением из стандарта w3c, где type, как ожидается, будет действительным типом mime (aka. media type), так что это была неожиданная находка. Благодаря! – Shaun Wilson 20 May 2018 в 00:51
  • 2
    Это исправляет ошибку, но затем я получаю «Неожиданный токен {& quot; в строке оператора импорта в Chrome 67 со сценарием, который является встроенным, например, & lt; script & gt; import ... & lt; / script & gt; – PandaWood 27 July 2018 в 12:01
  • 3
    @PandaWood Вы должны использовать <script type="module">import ...</script> при импорте из модуля. Я тестировал его в последней версии Chromium. – Vladimir S. 1 August 2018 в 07:10
Другие вопросы по тегам:

Похожие вопросы: