javascript - 未捕获的类型错误:moment.defineLocale 不是使用语言环境进行更改的函数
问题描述
我使用moment.js来创建我自己typescript
的webpack
java-script 客户端组件,一切都很好。
所用组件的版本:
"dependencies": {
"circular-dependency-plugin": "^5.2.2",
"ignore-loader": "^0.1.2",
"moment": "^2.29.1",
"moment-locales-webpack-plugin": "^1.2.0",
"ts-loader": "^9.2.3",
"typescript": "^4.3.5",
"webpack": "^5.45.1",
"webpack-cli": "^4.7.2",
"webpack-dev-server": "^4.0.0-beta.3"
}
为了像这个例子一样添加波斯文化,我必须编写一些这样的代码:
import * as moment from "moment";
import "moment/locale/fa";
console.log(moment.locale()); // en
moment.locale("fa");
console.log(moment.locale()); // muste be fa
现在我收到此错误:
我认为 webpack 对 .js 文件执行的额外过程并模拟require()
方法案例这个问题。我搜索了一些类似我的问题,但答案不可用。什么是问题以及如何配置 webpack 来解决这个问题。
更新:
在花了很多时间编写代码之后。我发现问题可以通过以下方式解决:例如,对于相关 .js 设置文件中的波斯文化,将../moment
路径替换为moment
:
该解决方案不是上帝,因此需要帮助以获得不需要更改时刻源代码的最佳方法。我认为像编辑路径路由tsc
或 webpack 配置这样的东西可以解决这个问题。有什么建议吗?谢谢
解决方案
添加了moment js
支持的版本。moment.locale()
@ 2.8.0
从 v2.8.1 开始,moment.locale('en')
设置本地化但不返回moment
.
推荐阅读
- azure - 无法使用 Visual Studio 订阅连接 Azure Devops 和 Azure
- python - 是否可以使用来自多个线程的 ctypes 调用 dll?
- python - 在谷歌表格的最后一行之后添加数据,使用 gspread python
- asp.net-core - 错误 al usar Dos modelos en una vista- mvc core
- html - 我如何将我的导航栏品牌与中心对齐并让我的导航链接从两侧围绕它
- javascript - 如何在 React 中显示 JSON 文件中的图像
- arrays - 使用strtok()后如何正确返回多维数组
- glsl - 我正在尝试将一些代码从光栅化着色器转换为光线跟踪着色器
- reactjs - 在 GitHub 页面上发布 React 网站会产生一个空白页面
- c# - 虚拟关键字本质上是否违反了里氏替换原则?