バグを説明する
TypeScriptアプリをwebpackでコンパイルしようとすると、ロケールごとに「../moment」を解決できないというエラーが発生します。
このエラーは、他のすべてのロケールで繰り返されます。
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
再現するには
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" } } ] }
}
予想される行動
yarn run webpack -p
はエラーなしで動作するはずです。
モーメント固有の環境
ご使用の環境で次のコードを実行し、出力を含めてください。
console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(navigator.userAgent)
console.log(moment.version)
このコードは同じエラーで失敗します!
このリクエストを開いていただきありがとうございます。
これはStackOverflowにとって素晴らしい質問です。
これはバグですね。 Stack Overflowは質問に適していますが、バグを修正する人は誰もいません。
私はあなたの答えを、TypeScriptでWebPackをサポートしていないことを意味すると解釈します。 残念な!
MomentをWebpackとTypeScriptで使用する方法については、インターネット上にさまざまなチュートリアルがあります。 他の多くの人がそれらをうまく一緒に使用しているようです。 より多くの人々がこの問題を抱えていて、それを修正するのに十分なコミュニティの知識がある場合、私たちはそうすることを試みることができます。
ちなみに私も同じ問題を抱えていました-私が気にしなかった瞬間のロケールが原因のようです。 私はこのオンライン記事で解決策を見つけました。私の場合は、ロケールプラグインを無視するのに十分でした。
プラグイン:[new webpack.IgnorePlugin(/^.\/ locale $ /、/ moment $ /)]
これはかなり主流の使用シナリオのように思われるので、ドキュメントのTypeScriptセクションから上記のページにリンクすることをお勧めします。
@ authguidance-examples PRはhttps://github.com/moment/momentjs.comで歓迎されてい
私は同じ問題に直面していました、ここに問題がありました-
npm i --save react-moment
を使用してインストールしました。これは、 package.json
ファイルに追加されたばかりですが、node_modulesにlibがないため、実行します。npm install --save moment react-moment
なぜいつも「数秒前」のように表示されるのか誰もが知っていますか? 日付が何であれ
私はreactjsにモーメントを追加しました:import * as moment from "moment"; 依存性注入で追加された: "モーメント": "2.23.0"、しかし取得
未定義のエラー... reactjsで、
親切に助けて...
なぜこの支店は閉鎖されないのですか? 2019年12月2日の最後のコメント。 @ marwahaha
最も参考になるコメント
私は同じ問題に直面していました、ここに問題がありました-
npm i --save react-moment
を使用してインストールしました。これは、package.json
ファイルに追加されたばかりですが、node_modulesにlibがないため、実行します。npm install --save moment react-moment