Moment: TS2307: Не удается найти модуль «момент».

Созданный на 1 мая 2020  ·  47Комментарии  ·  Источник: moment/moment

У меня проблема с импортом момента в мой проект angular 8.

Угловая версия = 8.3.26
Введите версию скрипта = 3.6.2
момент версия = 2.25.0

Я получаю сообщение об ошибке TS2307: не удается найти модуль «момент». и я использовал
момент импорта из «момента»; .

Я добавил "moduleResolution": "node" и "allowSyntheticDefaultImports": true, в tsConfig

может ли кто-нибудь помочь в этом

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

попробуйте версию 2.24, мои тесты начали давать сбой в новой версии, но нормально с предыдущей

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

попробуйте версию 2.24, мои тесты начали давать сбой в новой версии, но нормально с предыдущей

попробуйте версию 2.24, мои тесты начали давать сбой в новой версии, но нормально с предыдущей

Я пытался. но возникла такая же ошибка.

как выглядит строка для момента в package.json?

его работа с 2.24.0 может быть ошибкой развертывания в 2.25.0
Разверните новую версию с исправлением.

если вы используете пряжу, добавьте блок разрешений в package.json, чтобы переопределить версии субзависимости, это работает для меня

  "resolutions": {
    "moment": "2.24.0"
  }

Кажется, что разрешение модуля Typescript не находит момента. Использование относительного пути работает ./node_modules/moment/moment. @codebrent Спасибо, теперь он работает с версией 2.24.0.

В версии 2.25 это было добавлено в package.json. Но если я понимаю, что для файла typedef не существует соответствующего местоположения. Возможно, это нарушило печатание?

"typesVersions": {
    ">=3.1": {
      "*": [
        "ts3.1-typings/*"
      ]
    }
  },

его работа с 2.24.0 может быть ошибкой развертывания в 2.25.0
Разверните новую версию с исправлением.

Нет, это не работает для меня

как выглядит строка для момента в package.json?

"момент": "^ 2.25.0",

Capture
Импорт всех моментов возвращает ошибку

как выглядит строка для момента в package.json?

111

попробуйте изменить на "момент": "2.24.0", убедитесь, что в нем нет символа ^. удалите node_models и повторно установите npm. также, если у вас есть package-lock.json, вам может потребоваться его удалить. В противном случае npm продолжит установку 2.25

У меня такая же проблема, и, согласно оценке совместимости Dependabot на данный момент , я не единственный.

Переход на версию 2.24.0 может быть обходным решением, но он эффективно предотвращает использование 2.25.0 по крайней мере некоторыми пользователями.

попробуйте изменить на "момент": "2.24.0", убедитесь, что в нем нет символа ^. удалите node_models и повторно установите npm. также, если у вас есть package-lock.json, вам может потребоваться его удалить. В противном случае npm продолжит установку 2.25

Более безопасный канонический способ сделать это - просто npm install [email protected] . Вам не нужно ничего удалять или изменять вручную.

Я могу подтвердить, что переход на версию 2.24 решает проблему.

попробуйте изменить на "момент": "2.24.0", убедитесь, что в нем нет символа ^. удалите node_models и повторно установите npm. также, если у вас есть package-lock.json, вам может потребоваться его удалить. В противном случае npm продолжит установку 2.25

Более безопасный канонический способ сделать это - просто npm install [email protected] . Вам не нужно ничего удалять или изменять вручную.

Я могу подтвердить, что переход на версию 2.24 решает проблему.

На местном уровне его пробег после спуска до 2.24.0. но когда я развертываю это в Azure, он дает ту же ошибку.
azure error

Мой вопрос: если это тот же package.json, работающий как локально, так и в лазурном, почему он вызывает ошибку в момент импорта.
Я также прикрепил журнал ошибок на сервере

Я могу подтвердить, что версия 2.25.0 вызывает эту проблему, но не в версии 2.24.0.

Также подтверждаю, что 2.25.0 выдает эту проблему. Момент 2.24.0 работает нормально.

У меня возникла эта проблема во время сборки образа докера.

он не работает с 2.24.0 для меня

При переходе на более раннюю версию проблема также была устранена. Может быть, версия TypeScript может сыграть роль в наличии ошибки или нет?

Я использую момент-часовой пояс
Он не работает с версией момента исправления до 2.24.0 в package.json

@zhuyuedlut @leafqi

он не работает с 2.24.0

вы, вероятно, не переходили на версию 2.24.0. Удалите файл блокировки пакета и папку node_modules, затем выполните эту команду:

npm install --save --save -fficient [email protected]
npm install

Я также испытываю ту же проблему в проекте машинописного текста, и сборка внезапно завершается ошибкой, потому что мы не закрепили зависимость в package.json.

error TS2307: Cannot find module 'moment'.
error Command failed with exit code 2.

закрепление версии на "2.24.0" устраняет проблему.

Можно попробовать с полем разрешений в package.json

Добавить

"разрешения": {
"момент": "2.24.0"
}

Я также подтверждаю, что с 2.25.0 у меня такая же проблема с машинописным текстом 3.8.3 и работой с ts-node 8.9.1. Переход на версию 2.24.0 решил проблему.

@zhuyuedlut @leafqi

он не работает с 2.24.0

вы, вероятно, не переходили на версию 2.24.0. Удалите файл блокировки пакета и папку node_modules, затем выполните эту команду:

npm install --save --save -fficient [email protected]
npm install

Спасибо. моя проблема решена. его работа с 2.24.0
правильное использование: "moment": "2.24.0"
неправильное использование: "moment": "^2.24.0"

"moment": "2.24.0" у меня тоже работает ..

То же самое, блокировка в 2.24.0 исправила это.

Это приложение angular 7.2, созданное с помощью webpack ^ 4.2.0

Да, 2.24.0 работает нормально. Кто-нибудь знает, какое изменение они внесли?

То же самое, проблема была исправлена ​​путем установки фиксированной версии на "2.24" вместо "^ 2.24".

Есть ли у нас расчетное время прибытия для этого исправления?

Сегодня пятница, и мне интересно, стоит ли мне понизить рейтинг до 2.24.0 до выходных.

попробуйте изменить на "момент": "2.24.0", убедитесь, что в нем нет символа ^. удалите node_models и повторно установите npm. также, если у вас есть package-lock.json, вам может потребоваться его удалить. В противном случае npm продолжит установку 2.25

Благодарю. Проблема устранена путем понижения версии до 2.24.0.

Но вы больше не живете настоящим моментом :)

попробуйте изменить на "момент": "2.24.0", убедитесь, что в нем нет символа ^. удалите node_models и повторно установите npm. также, если у вас есть package-lock.json, вам может потребоваться его удалить. В противном случае npm продолжит установку 2.25

Спасибо, проблема была устранена путем понижения версии с 2.25.0 до 2.24.0. Также я сделал "^ 2.24.0" на "2.24.0"

Если понижение версии с 2.25.0 до 2.24.0 не работает и вы снова получаете ту же ошибку, попробуйте полностью удалить модуль и переустановить его снова.

Используя npm:

  1. npm uninstall moment
  2. npm install [email protected]

Надеюсь, поможет.

Ура
Unkn0wn0x

Есть идеи, когда будет выпущено исправление? Я вижу, что это неработающая проблема, и у меня нет доступа для внесения изменений в Master, чтобы установить текущую версию 2.24, а производственные сборки терпят неудачу слева и справа.
Пожалуйста, поделитесь релизом ETA спасибо

У меня тоже была эта проблема, и я ее исправил
удалив эти строки
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
строки 150-156
в
. \ node_modules \ момент \ package.json
и после того, как я это сделал, он отлично работает с версией 2.25

У меня тоже была эта проблема, и я ее исправил
удалив эти строки
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
строки 150-156
в
. \ node_modules \ момент \ package.json
и после того, как я это сделал, он отлично работает с версией 2.25

это будет работать локально, но для конвейеров CI я сомневаюсь

Всем спасибо: D 2.24.0 у меня тоже сработало ..

Понижен до 2.24.0 , и он работает нормально.

2.25.1 выпущен

Протестировал 2.25.1, проблема исчезла. благодаря

Да, я тоже это тестировал, и никаких проблем не было.

Действительно, обновлено через несколько минут после публикации, и все в порядке: спасибо за быстрое исправление!

Наконец-то у меня это работает. даунгрейд до 2.24.0 работает. но не забудьте поставить " момент": "2.24.0"
вместо "момент": "^ 2.24.0"
azure error

Версия 2.25.1 решила проблему «Невозможно найти момент» модуля, но я тестирую в приложении Angular 8 и выдает следующую ошибку:

WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/home/project/node_modules/moment/src/lib/ locale'

Кто-нибудь еще испытал эту неудачу?

В версии 2.25.1 я также получаю предупреждения о некоторых других функциях, на которые я ссылаюсь:

"export 'utc' (imported as 'moment') was not found in 'moment'
"export 'max' (imported as 'moment') was not found in 'moment'
"export 'min' (imported as 'moment') was not found in 'moment'

Для меня это было

    "moment": "2.24.0",
    "moment-timezone": "^0.5.31",

Думаю можно обновить момент до версии 2.29.0

npm uninstall moment
npm install [email protected]

TS2307: не удается найти модуль "момент" в Angular 8

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