Как исправить ошибку UTF-8 Firebase для сценария содержимого с расширением Chrome Manifest.json?

Я сделал расширение Chrome и использую Firebase для аутентификации пользователей. Я загрузил Firebase.js из https://www.gstatic.com/firebasejs/4.11.0/firebase.js, надеясь добавить код firebase в свой манифест расширения Chrome. Проверка подлинности Firebase выполняется в сценарии содержимого, поэтому ее необходимо включить в «js» в «content_scripts».

Пример сценария содержимого Manifest.json

Вместо этого я получаю сообщение об ошибке UTF-8 при установке firebase.js.

Error: Could not load file 'js/lib/firebase.js' for content script. It isn't UTF-8 encoded. Could not load manifest.

Я попытался использовать TextEdit на Mac, чтобы сохранить файл как UTF-8 - все равно не повезло.

Что я делаю неправильно?

Похоже на ошибку в Chrome. Посмотрите, сможете ли вы воспроизвести его в более старом портативном Chrome или новом Chrome Canary. Вы также можете выполнить поиск по crbug.com и сообщить об этой ошибке.

wOxxOm 04.05.2018 07:28

Такая же проблема здесь с firebase.js

InfoStatus 04.05.2018 12:58

это звучит немного глупо, но не могли бы вы перейти на более низкую версию firebase, v2.2.1?

Dani Grosu 11.05.2018 21:16

@DaniGrosu да, я уже пробовал - к сожалению, все равно не работает

Adam Croutworst 12.05.2018 23:26

Я опубликую сообщение об ошибке, если я не смогу заставить его работать в более старом Chrome или на Canary .... как предлагает @wOxxOm

Adam Croutworst 12.05.2018 23:26

У меня была такая же проблема с firebase v5.0.1, но после перехода на более раннюю версию все прошло нормально

Dani Grosu 13.05.2018 11:53

привет @DaniGrosu, на какую версию вы перешли? У меня была такая же проблема с firebase 5.0.1

Spark.Bao 26.05.2018 13:33

2.2.1, но он также может работать с более высокой версией

Dani Grosu 26.05.2018 13:35

@DaniGrosu Spark.Bao Я больше изучил это, и некоторая ошибка в 4.5.1 вызвала эту ошибку UTF-8. Я бы рекомендовал использовать 4.5.0 и ниже

Adam Croutworst 13.06.2018 02:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
9
655
1

Ответы 1

В моем случае проблема возникла из-за того, как минификаторы / обфускаторы (например, uglify) кодируют определенные символы. Моя сборка для разработки работала нормально, но я получал эту ошибку UTF8, когда использовал минифицированную сборку.

Could not load file 'content-script.js' for content script. It isn't UTF-8 encoded.

Для меня решение было отключить минификацию.

Это приемлемый компромисс, потому что пользователи не загружают код с сервера при каждой загрузке страницы. Он загружается только один раз, когда расширение установлено или обновлено. Небольшой лишний килобайт ничего не повредит.

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