Moment: TS2307:找不到模块“瞬间”。

创建于 2020-05-01  ·  47评论  ·  资料来源: moment/moment

我在将时间导入我的angular 8项目时遇到问题。

角版本= 8.3.26
类型脚本版本= 3.6.2
瞬间版本= 2.25.0

我遇到错误TS2307:找不到模块'moment'。 我已经用过
从“瞬间”导入瞬间;

我在tsConfig中添加了“ moduleResolution”:“ node”“ allowSyntheticDefaultImports”:true

有人可以帮忙吗

最有用的评论

尝试2.24版,我的测试在新版本上开始失败,但以前的版本可以

所有47条评论

尝试2.24版,我的测试在新版本上开始失败,但以前的版本可以

尝试2.24版,我的测试在新版本上开始失败,但以前的版本可以

我试过了。 但是出现了同样的错误。

package.json中的当前行是什么样的?

其与2.24.0一起使用可能是2.25.0中的部署错误
请部署带有修复程序的新版本。

如果您使用yarn,则将resolutions块添加到package.json以覆盖子依赖版本,这对我有用

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

似乎Typescript模块分辨率找不到瞬间。 使用相对路径可以工作./node_modules/moment/moment。 @codebrent谢谢,它现在正在使用2.24.0版本。

在2.25中,已将其添加到package.json中。 但是,如果我了解到,typedef文件不存在相应的位置。 也许这打断了打字?

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

其与2.24.0一起使用可能是2.25.0中的部署错误
请部署带有修复程序的新版本。

没有对我不起作用

package.json中的当前行是什么样的?

“ moment”:“ ^ 2.25.0”,

Capture
瞬间导入返回错误

package.json中的当前行是什么样的?

111

尝试更改为“ moment”:“ 2.24.0”,并确保其中没有^。 删除node_models并重新安装npm。 另外,如果您有package-lock.json,则可能需要将其删除。 否则npm将继续安装2.25

我遇到了同样的问题,根据Dependabot兼容性评分,我不是唯一的问题。

降级到2.24.0可能是一种解决方法,但是它至少可以有效地阻止至少一些用户使用2.25.0。

尝试更改为“ moment”:“ 2.24.0”,并确保其中没有^。 删除node_models并重新安装npm。 另外,如果您有package-lock.json,则可能需要将其删除。 否则npm将继续安装2.25

执行此操作的更安全,规范的方法只是npm install [email protected] 。 您无需删除任何内容或手动更改任何内容。

我可以确认降级到2.24可以解决此问题。

尝试更改为“ moment”:“ 2.24.0”,并确保其中没有^。 删除node_models并重新安装npm。 另外,如果您有package-lock.json,则可能需要将其删除。 否则npm将继续安装2.25

执行此操作的更安全,规范的方法只是npm install [email protected] 。 您无需删除任何内容或手动更改任何内容。

我可以确认降级到2.24可以解决此问题。

在本地其运行评级下降至2.24.0。 但是当我将其部署到Azure时却出现相同的错误。
azure error

我的问题是,是否同时运行本地和azure的同一package.json为何会在导入时引起错误。
我也已在服务器中附加了错误日志

我可以确认2.25.0给出了这个问题,但在2.24.0上却没有。

我也确认2.25.0会解决此问题。 Moment 2.24.0正常工作。

我在docker映像构建期间遇到了这个问题。

它不适用于2.24.0

降级也解决了此问题。 也许TypeScript版本可能会导致该bug?

我使用矩时区
它不适用于在package.json中将即时版本固定为2.24.0

@zhuyuedlut @leafqi

它不适用于2.24.0

您可能没有降级到2.24.0。 删除程序包锁定文件和node_modules文件夹,然后运行以下命令:

npm install --save --save-exact时刻@ 2.24
npm安装

我在打字稿项目中也遇到了同样的问题,由于我们没有将依赖关系固定在package.json中,因此构建突然失败了。

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

将版本固定到"2.24.0"解决此问题。

可以尝试使用package.json中的resolutions字段

“决议”:{
“ moment”:“ 2.24.0”
}

我还确认在2.25.0中,打字稿3.8.3和ts-node 8.9.1运行时存在相同的问题。 降级到2.24.0解决了该问题。

@zhuyuedlut @leafqi

它不适用于2.24.0

您可能没有降级到2.24.0。 删除程序包锁定文件和node_modules文件夹,然后运行以下命令:

npm install --save --save-exact时刻@ 2.24
npm安装

谢谢。 我的问题已经解决。 与2.24.0一起使用
正确用法: "moment": "2.24.0"
错误用法: "moment": "^2.24.0"

“ moment”:“ 2.24.0”也为我工作。

同样,锁定在2.24.0中可以修复它。

这是在使用webpack ^ 4.2.0构建的Angular 7.2应用程序上

是的,2.24.0运行正常。 有人知道他们做了什么更改吗?

同样,通过将固定版本设置为“ 2.24”而不是“ ^ 2.24”来解决问题

我们有此修复程序的ETA吗?

现在是星期五,我想知道是否应该在周末之前降级到2.24.0。

尝试更改为“ moment”:“ 2.24.0”,并确保其中没有^。 删除node_models并重新安装npm。 另外,如果您有package-lock.json,则可能需要将其删除。 否则npm将继续安装2.25

谢谢。 通过将版本降级到2.24.0可以解决此问题

但是,您现在不再生活在:)

尝试更改为“ moment”:“ 2.24.0”,并确保其中没有^。 删除node_models并重新安装npm。 另外,如果您有package-lock.json,则可能需要将其删除。 否则npm将继续安装2.25

谢谢,通过将版本从2.25.0降级到2.24.0已解决了问题。 我也从“ ^ 2.24.0”到“ 2.24.0”

如果将von 2.25.0降级为2.24.0无效,并且再次出现相同的错误,请尝试完全卸载模块,然后重新安装。

使用npm:

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

希望能帮助到你。

干杯
Unkn0wn0x

任何想法何时发布修复程序? 我看到这是一个坏问题,并且我无权在Master中进行更改以将当前版本设置为2.24,并且生产版本左右失败。
请分享发布的ETA谢谢

我也有这个问题,我已经解决了
通过删除这些行
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
150-156行

。\ node_modules \ moment \ package.json
在执行此操作后,它在2.25版中可以正常使用

我也有这个问题,我已经解决了
通过删除这些行
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
150-156行

。\ node_modules \ moment \ package.json
在执行此操作后,它在2.25版中可以正常使用

这将在本地运行,但是对于CI管道,我怀疑

谢谢大家:D 2.24.0也为我工作..

降级为2.24.0 ,并且工作正常。

2.25.1发布

经过测试2.25.1,问题消失了。 谢谢

是的,我也对此进行了测试,没有遇到任何问题。

确实,它发布后的几分钟升级十分顺利:感​​谢快速修复!

终于对我有用。 降级为2.24.0。 但请确保输入“ moment”:“ 2.24.0”
而不是“ moment”:“ ^ 2.24.0”
azure error

2.25.1版解决了无法找到模块的“问题”问题,但是我正在Angular 8应用程序中进行测试,并且抛出以下错误:

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'

有没有其他人经历过这种失败?

我还在2.25.1中收到有关我正在引用的其他一些功能的警告:

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

对我来说

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

我认为您可以将时刻更新到2.29.0版

npm uninstall moment
npm install [email protected]

TS2307:在Angular 8中找不到模块“矩”

此页面是否有帮助?
5 / 5 - 1 等级