Descreva o bug
Se tento compilar meu aplicativo TypeScript com webpack, obtenho um erro para cada localidade que '../moment' não pode ser resolvido.
Este erro se repete para todas as outras localidades:
ERROR in ./node_modules/moment/locale/km.js
Module not found: Error: Can't resolve '../moment' in 'C:\PROGS\dev\var\private\moment-test\node_modules\moment\locale'
@ ./node_modules/moment/locale/km.js 5:50-70
@ ./node_modules/moment/locale sync ^\.\/.*$
@ ./node_modules/moment/moment.js
@ ./src/app.ts
Reproduzir
src / app.ts
import * as moment from "moment";
console.log(moment().format("YYYY"));
package.json
{
"private": true,
"dependencies": {
"moment": "2.23.0"
},
"devDependencies": {
"awesome-typescript-loader": "5.2.1",
"typescript": "3.2.2",
"webpack": "4.28.3",
"webpack-cli": "3.2.1"
}
}
tsconfig.json
{ "include": [ "./src/" ] }
webpack.config.js
module.exports = {
entry: "./src/app.ts",
output: { filename: "bundle.js" },
resolve: { extensions: [".ts"] },
module: { rules: [ { test: /\.ts$/, use: { loader: "awesome-typescript-loader" } } ] }
}
Comportamento esperado
yarn run webpack -p
deve funcionar sem erros.
Ambiente específico do momento
Execute o seguinte código em seu ambiente e inclua a saída:
console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(navigator.userAgent)
console.log(moment.version)
Este código falha com os mesmos erros!
Obrigado por abrir este pedido.
Esta é uma ótima pergunta para Stack Overflow .
Isso é um bug, não é? Stack Overflow é bom para questionar, mas ninguém vai consertar bugs aí.
Interpreto sua resposta como significando que você não oferece suporte para WebPack com TypeScript. Muito ruim!
Existem vários tutoriais na Internet sobre como usar o Moment com Webpack e TypeScript. Parece que muitos outros os usam juntos muito bem. Se mais pessoas tiverem esse problema e houver conhecimento da comunidade suficiente para corrigi-lo, podemos tentar fazer isso.
A propósito, eu tive o mesmo problema - parece ser causado por locais de momento, com os quais eu não me importava. Eu encontrei uma solução neste artigo online , que foi bom o suficiente no meu caso, para ignorar o plug-in locales:
plugins: [novo webpack.IgnorePlugin (/^.\/ locale $ /, / momento $ /)]
Este parece um cenário de uso bastante comum, então eu recomendo o link para a página acima da seção TypeScript dos documentos .
@ authguidance-examples PRs são bem-vindos em https://github.com/moment/momentjs.com !
Eu estava enfrentando o mesmo problema, aqui estava o problema-
npm i --save react-moment
, que acabou de ser adicionado no arquivo package.json
mas lib não estava lá em node_modules, então para fazer isso eu executonpm install --save moment react-moment
alguém sabe por que sempre mostra como "alguns segundos atrás"? qualquer que seja a data
adicionei o momento em reactjs: import * as moment from "moment"; e na injeção de dependência adicionado: "momento": "2.23.0", mas obtendo o
erro indefinido ... em reactjs,
Por favor, ajude ...
Por que esta filial não está fechada? Último comentário em 2 de dezembro de 2019. @marwahaha
Comentários muito úteis
Eu estava enfrentando o mesmo problema, aqui estava o problema-
npm i --save react-moment
, que acabou de ser adicionado no arquivopackage.json
mas lib não estava lá em node_modules, então para fazer isso eu executonpm install --save moment react-moment