【问题标题】:How to dynamically import moment.js in a react app (with typescript)如何在反应应用程序中动态导入moment.js(使用打字稿)
【发布时间】:2023-04-04 23:04:01
【问题描述】:

我正在尝试进行一些代码拆分,而 moment.js 是我想在单独的块中隔离的目标包之一。我是这样做的:

const myFn = async (currentNb) => {
   const moment = (await import('moment')).default()          
   const dateUnix: number = moment(currentNb).valueOf()
   [...]
}

但我收到以下错误:this expression is not callable. Type Moment has no call signatures。所以我想我应该做类似moment.valueOf(currentNb) 的事情,但我不太确定。有人可以对此有所了解吗?提前致谢

【问题讨论】:

标签: javascript reactjs momentjs code-splitting


【解决方案1】:

显然我的语法不正确。我终于找到了解决这个问题的方法。我需要按如下方式导入:

const {default: moment} = await import('moment')

我在 webpack 文档中找到了答案:

我们需要默认的原因是从 webpack 4 开始,当导入一个 CommonJS 模块,导入将不再解析为 module.exports,它将改为创建一个人工命名空间对象 用于 CommonJS 模块。

【讨论】:

  • 你的问题是你调用了 .default() 而不是 .default (默认不是函数)
猜你喜欢
  • 2020-12-03
  • 1970-01-01
  • 2021-04-21
  • 2017-05-07
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 2020-11-20
  • 2016-11-01
相关资源
最近更新 更多