У меня есть прекрасная библиотека топойсон, работающая для меня в приложении на Rails локально:
https://github.com/topojson/topojson
, и это позволяет нам показывать несколько хороших geoJSON на карте Google, например:
Я показываю его с открытым файлом map.js, поскольку, похоже, именно в этом проблема при развертывании на heroku. На героку файл map.js выдает ошибку на chrome:
maps -.... js: 27 Uncaught SyntaxError: Неожиданный экспорт токена
и похожая ошибка (хотя и в другой строке) в Firefox:
SyntaxError: объявления об экспорте могут появляться только на верхнем уровне карты модуля -... js: 1
Я связывался со службой поддержки heroku, которая предложила заблокировать нашу версию npm, так как кажется, что минимизированный js-файл локально заканчивается немного другим содержимым, чем на heroku. Хочу заметить, что я сделал все, что в моих силах, для локальной репликации производственного режима, создания клоберов, перекомпиляции статических ресурсов и т. Д. И запуска их так:
RAILS_SERVE_STATIC_FILES=true DEVISE_SECRET_KEY=1234 AIRBRAKE_PROJECT_ID=1234 RAILS_ENV=production bundle exec rails s
но попробуйте, как я могу, я не могу повторить проблему на моем компьютере разработчика.
Вы можете увидеть все кровавые подробности в этом PR https://github.com/AgileVentures/LocalSupport/pull/1069, и мне было интересно, есть ли у кого-нибудь какие-либо идеи о чем-то еще, что могло бы отличать мою машину разработчика и heroku, что могло привести к файлам javascript компилировать по-другому? На героку имеем следующее:
export*from"topojson-client";export*from"topojson-server";export*from"topojson-simplify
, но в статических ресурсах, скомпилированных локально, нет упоминаний об оскорбительных ключевых словах export
, но они есть в файлах на сервере heroku. Я пробовал все виды методов, чтобы гарантировать, что я удаляю кэшированные файлы и что изменения, которые я делаю, отражаются как локально, так и на heroku.
Я также изучал способы попробовать и обработать ключевое слово экспорта (новое в es6), но это похоже на еще более глубокую кроличью нору, то есть звездочки 4 или веб-пакет или подобное.
Во всяком случае, если у кого-то есть мысли о других вещах, которые могут привести к тому, что heroku будет работать по-другому, я бы хотел их услышать, поэтому я могу либо заблокировать их, либо решить, как локально воспроизвести ошибку.
Большое спасибо заранее