Moment: TS2307: Não é possível encontrar o módulo 'momento'.

Criado em 1 mai. 2020  ·  47Comentários  ·  Fonte: moment/moment

Estou tendo problemas com a importação de momento para meu projeto angular 8.

Versão Angular = 8.3.26
Digite a versão do script = 3.6.2
versão do momento = 2.25.0

Estou recebendo o erro TS2307: Não é possível encontrar o módulo 'momento'. e eu usei
importar momento de 'momento'; .

adicionei "moduleResolution": "node" e "allowSyntheticDefaultImports": true, em tsConfig

Alguém pode ajudar nisso

Comentários muito úteis

tente a versão 2.24, meus testes começaram a falhar na nova versão, mas bem com a anterior

Todos 47 comentários

tente a versão 2.24, meus testes começaram a falhar na nova versão, mas bem com a anterior

tente a versão 2.24, meus testes começaram a falhar na nova versão, mas bem com a anterior

Eu tentei. mas veio o mesmo erro.

como é a linha de momento em package.json?

seu funcionamento com 2.24.0 pode ser um erro de implantação em 2.25.0
Implante a nova versão com correção.

se você usar o yarn, adicione o bloco de resoluções ao package.json para substituir as versões da subdependência, funciona para mim

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

Parece que a resolução do módulo Typescript não consegue encontrar o momento. Usar um caminho relativo funciona ./node_modules/moment/moment. @codebrent Obrigado, agora está funcionando com a versão 2.24.0.

No 2.25, isso foi adicionado ao package.json. Mas se eu entender que não existe um local correspondente para o arquivo typedef. Talvez isso tenha quebrado a digitação?

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

seu funcionamento com 2.24.0 pode ser um erro de implantação em 2.25.0
Implante a nova versão com correção.

Não, não está funcionando para mim

como é a linha de momento em package.json?

"momento": "^ 2.25.0",

Capture
Todas as importações de momento retornando erro

como é a linha de momento em package.json?

111

tente mudar para "momento": "2.24.0", certifique-se de que não há um ^ nele. delete node_models e re npm install. também se você tiver o pacote-lock.json, pode ser necessário excluí-lo. Caso contrário, o npm continuará instalando 2.25

Estou vendo o mesmo problema e, de acordo com a pontuação de compatibilidade do

O downgrade para 2.24.0 pode ser uma solução alternativa, mas impede efetivamente que pelo menos alguns usuários usem o 2.25.0.

tente mudar para "momento": "2.24.0", certifique-se de que não há um ^ nele. delete node_models e re npm install. também se você tiver o pacote-lock.json, pode ser necessário excluí-lo. Caso contrário, o npm continuará instalando 2.25

A maneira mais segura e canônica de fazer isso é simplesmente npm install [email protected] . Você não precisa excluir ou alterar nada manualmente.

Posso confirmar que o downgrade para 2.24 corrige o problema.

tente mudar para "momento": "2.24.0", certifique-se de que não há um ^ nele. delete node_models e re npm install. também se você tiver o pacote-lock.json, pode ser necessário excluí-lo. Caso contrário, o npm continuará instalando 2.25

A maneira mais segura e canônica de fazer isso é simplesmente npm install [email protected] . Você não precisa excluir ou alterar nada manualmente.

Posso confirmar que o downgrade para 2.24 corrige o problema.

Localmente, está funcionando após descer para 2.24.0. mas quando eu implantar isso no Azure para dar o mesmo erro.
azure error

Minha pergunta é se é o mesmo package.json rodando local e azure porque está causando erro no momento da importação.
anexei o log de erros no servidor também

Posso confirmar que o 2.25.0 apresenta esse problema, mas não no 2.24.0.

Também confirmo que 2.25.0 dá esse problema. O momento 2.24.0 funciona bem.

Eu tive esse problema durante a criação da imagem do docker.

não está funcionando com 2.24.0 para mim

O downgrade também corrigiu o problema aqui. Talvez a versão do TypeScript possa ter um papel em ter o bug ou não?

Eu uso fuso-horário
Não está funcionando com a fixação da versão do momento para 2.24.0 em package.json

@zhuyuedlut @leafqi

não está funcionando com 2.24.0

você provavelmente não fez o downgrade para 2.24.0. Remova o arquivo de bloqueio de pacote e a pasta node_modules e execute este comando:

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

Também estou tendo o mesmo problema em um projeto de texto digitado e a compilação está falhando de repente porque não fixamos a dependência em package.json.

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

fixar a versão em "2.24.0" corrige o problema.

Pode tentar com o campo de resoluções em package.json

Adicionar

"resoluções": {
"momento": "2.24.0"
}

Também confirmo que com 2.25.0 tenho o mesmo problema com o typescript 3.8.3 e executando com ts-node 8.9.1. O downgrade para 2.24.0 resolveu o problema.

@zhuyuedlut @leafqi

não está funcionando com 2.24.0

você provavelmente não fez o downgrade para 2.24.0. Remova o arquivo de bloqueio de pacote e a pasta node_modules e execute este comando:

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

THX. meu problema foi resolvido. está funcionando com 2.24.0
uso correto: "moment": "2.24.0"
uso errado: "moment": "^2.24.0"

"moment": "2.24.0" está funcionando para mim também ..

Mesmo, travar em 2.24.0 corrigiu.

Este é um aplicativo angular 7.2 desenvolvido com webpack ^ 4.2.0

Sim, 2.24.0 está funcionando bem. Alguém sabe qual é a mudança que fizeram?

Mesmo, o problema foi corrigido definindo a versão corrigida para "2.24" em vez de "^ 2.24"

Temos um HEC para essa correção?

É sexta-feira e estou me perguntando se devo fazer o downgrade para 2.24.0 antes do fim de semana.

tente mudar para "momento": "2.24.0", certifique-se de que não há um ^ nele. delete node_models e re npm install. também se você tiver o pacote-lock.json, pode ser necessário excluí-lo. Caso contrário, o npm continuará instalando 2.25

Obrigado. O problema foi corrigido ao fazer o downgrade da versão para 2.24.0

Você não está mais vivendo no momento :)

tente mudar para "momento": "2.24.0", certifique-se de que não há um ^ nele. delete node_models e re npm install. também se você tiver o pacote-lock.json, pode ser necessário excluí-lo. Caso contrário, o npm continuará instalando 2.25

Obrigado, o problema foi corrigido ao fazer o downgrade da versão 2.25.0 para 2.24.0. Também fiz "^ 2.24.0" a "2.24.0"

Se o downgrade de von 2.25.0 para 2.24.0 não funcionar e você receber o mesmo erro novamente, tente desinstalar o módulo completamente e reinstalá-lo novamente.

Usando npm:

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

Espero que ajude.

Felicidades
Unkn0wn0x

Alguma ideia de quando a correção será lançada? Vejo que este é um problema com problemas e não tenho acesso para fazer alterações no Master para definir a versão do momento para 2.24 agora e as compilações de produção estão falhando a torto e a direito.
Por favor, compartilhe o lançamento ETA, obrigado

Eu também tive esse problema e resolvi
removendo essas linhas
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
linhas 150-156
dentro
. \ node_modules \ moment \ package.json
e depois que fiz isso, está funcionando perfeitamente bem com a versão 2.25

Eu também tive esse problema e resolvi
removendo essas linhas
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
linhas 150-156
dentro
. \ node_modules \ moment \ package.json
e depois que fiz isso, está funcionando perfeitamente bem com a versão 2.25

isso funcionará localmente, mas para pipelines de CI, duvido

Obrigado a todos: D 2.24.0 funcionou para mim também ..

Baixado para 2.24.0 e está funcionando bem.

2.25.1 lançado

Testado 2.25.1, o problema desapareceu. obrigado

Sim, eu testei isso também e não tive nenhum problema.

Na verdade, atualizei minutos depois de ser publicado e está tudo bem: obrigado pela solução rápida!

Finalmente funciona para mim. rebaixando para 2.24.0 funcionando. mas certifique-se de colocar " momento": "2.24.0"
em vez de "momento": "^ 2.24.0"
azure error

a versão 2.25.1 resolveu o problema de 'momento' do módulo não encontrado, mas estou testando em um aplicativo Angular 8 e ele gera o seguinte erro:

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'

Alguém mais experimentou essa falha?

Também estou recebendo avisos em 2.25.1 sobre algumas das outras funções que estou fazendo referência:

"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'

Para mim foi

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

Eu acho que você pode atualizar o momento para a versão 2.29.0

npm uninstall moment
npm install [email protected]

TS2307: Não é possível encontrar o módulo 'momento' no Angular 8

Esta página foi útil?
5 / 5 - 1 avaliações