Moment: Импорт модуля не работает в последней версии Chrome

Созданный на 5 окт. 2017  ·  7Комментарии  ·  Источник: moment/moment

Описание проблемы и шаги по воспроизведению:

В последней версии Chrome заявлена ​​поддержка импорта собственных модулей. Но для этой функции необходимо указать полное имя файла модуля (включая расширение «.js»).
В коде библиотеки записи «import ...» не имеют расширений «.js», что приводит к 404 ошибкам в браузере.

К вашему сведению: одна вещь, которая может (и скрывает на некоторых платформах) эту проблему, - это конфигурация веб-сервера.
На веб-сервере Apache в OSX по умолчанию включена настройка «MultiViews» (что позволяет серверу находить файл «moment.js», если файл «момент» не найден), но в Ubuntu, например, эта опция веб-сервера отключено, что приводит к сбою загрузки модуля.

Окружающая обстановка:

Chrome 61.0.3163.100 (64-разрядная версия) в Ubuntu 16.04

console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
VM3015:1 Thu Oct 05 2017 19:30:43 GMT+0600 (+06)
VM3015:2 05.10.2017, 19:30:43
VM3015:3 -360
VM3015:4 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

Версия moment.js - 2.18.1

Help Wanted Loading

Самый полезный комментарий

Это не просто хромированная вещь. Насколько я знаю, спецификация модуля es6 требует имени файла в FromClause, а не только строки. Rollup и Webpack отлично работают без расширения файла, но это только для упрощения сборки.

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

Все 7 Комментарий

Это не просто хромированная вещь. Насколько я знаю, спецификация модуля es6 требует имени файла в FromClause, а не только строки. Rollup и Webpack отлично работают без расширения файла, но это только для упрощения сборки.

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

Было бы действительно хорошо отсортировать это, поскольку ни исходная версия, ни скомпилированная версия не работают при использовании импорта модуля в браузерах, которые его поддерживают.

Это _должно_ быть быстрым исправлением простого добавления расширений файлов к импортируемым файлам.
Также для людей, желающих использовать скомпилированную версию - для глобального использования Moment свойство global должно быть заменено на window поскольку this равно undefined .

Лучше всего решить эту проблему с помощью общественного пиара!

вот и я

Это было бы здорово для использования в веб-компоненте Polymer. Из-за этого мне не удается использовать момент js в стандартном веб-компоненте ES6.

Это все еще проблема? Я беспокоюсь, что добавление расширений файлов приведет к тому, что Moment.js сломается для некоторых других пользователей ...

Думаю, это дубликат https://github.com/moment/moment/issues/4713

Была ли эта страница полезной?
0 / 5 - 0 рейтинги