Объявления const не поддерживаются в строгом режиме в некоторых браузерах.

Когда я запускаю свое приложение в симуляторе iOS iPhone 6 (или на моем физическом iPad2), я получаю эту ошибку:

SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.
=> reactBoilerplateDeps.dll.js:4088 

Что приводит к модулю is-in-browser, включенному jss:

export const isBrowser = typeof window === "object"
    && typeof document === 'object'
    && document.nodeType === 9;

export default isBrowser;

Я использую эти пакеты:

Как это исправить? Возможно, плагин transform-es2015-block-scoping согласно этому вопросу ?

Приложение отлично работает на моем физическом iPhone 6 и в настольных браузерах, но не на моем iPad2.


person Derick Schoonbee    schedule 24.07.2017    source источник


Ответы (2)


Согласно Могу ли я использовать, это исправлено в [iOS] Safari 10, поэтому вы можете сойдет с рук сообщение людям, столкнувшимся с этой проблемой, что их браузер не поддерживается, и им следует обновить его, но это действительно не очень хорошее решение.

Также обратите внимание, что когда twig.js нажимается этой проблемы, их исправление заключалось в declare с ключевым словом var вместо const, поэтому, возможно, вам следует отправить отчет об ошибке в is-in-browser о это.

Также было бы неплохо попробовать использовать ключевое слово var вместо const, отредактировав файл, в котором вы нашли export const isBrowser ..., заменив const на var. Эта информация поможет, если вы решите отправить отчет об ошибке, и если это действительно сработает, вы можете создать ответвление их репозитория с вашим исправлением и отправить запрос на включение.

person 3D1T0R    schedule 04.08.2017

Похоже, is-in-browser не был собран с правильными настройками Babel. Вы можете попробовать перейти к node_modules/is-in-browser и запустить npm run build, чтобы восстановить его.

person Andrey E    schedule 05.08.2017