Moment: 找不到模块:错误:无法使用 Webpack 和 TypeScript 解析“../moment”

创建于 2019-01-11  ·  9评论  ·  资料来源: moment/moment

描述错误

如果我尝试使用 webpack 编译我的 TypeScript 应用程序,我会收到无法解析“../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"));

包.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"
    }
}

配置文件

{ "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应该可以正常工作而不会出现任何错误。

特定时刻的环境

  • 视窗 10
  • 节点 10.15.0
  • 时刻 2.23.0
  • 打字稿 3.2.2
  • 网络包 4.28.3
  • 时区:欧洲中部时间 (UTC+1)

请在您的环境中运行以下代码并包含输出:

console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(navigator.userAgent)
console.log(moment.version)

此代码失败并出现相同的错误!

最有用的评论

我面临同样的问题,这是问题-

  • 我使用自定义命令npm i --save react-moment安装了它,该命令刚刚添加到package.json文件中,但 lib 在 node_modules 中不存在,因此我执行
  • npm install --save moment react-moment
  • 现在它按预期工作。

所有9条评论

感谢您打开此请求。
对于Stack Overflow 来说,这是一个很好的问题。

这是一个错误,不是吗? Stack Overflow 是一个很好的问题,但没有人会修复那里的错误。

我将您的回答解释为您不支持带有 TypeScript 的 WebPack。 太糟糕了!

互联网上有各种关于在 Webpack 和 TypeScript 中使用 Moment 的教程。 似乎许多其他人一起使用它们就好了。 如果有更多人遇到这个问题,并且有足够的社区知识来解决它,那么我们可以尝试这样做。

顺便说一下,我遇到了同样的问题 - 似乎是由我不关心的时刻语言环境引起的。 我在这篇在线文章中找到了一个解决方案,

插件: [new webpack.IgnorePlugin(/^.\/locale$/, /moment$/)]

这似乎是一个非常主流的使用场景,因此我建议从文档

@authguidance-examples 欢迎访问https://github.com/moment/momentjs.com

我面临同样的问题,这是问题-

  • 我使用自定义命令npm i --save react-moment安装了它,该命令刚刚添加到package.json文件中,但 lib 在 node_modules 中不存在,因此我执行
  • npm install --save moment react-moment
  • 现在它按预期工作。

有谁知道为什么总是显示“几秒钟前”? 不管是什么日期

我在 reactjs 中添加了时刻:从“时刻”导入 * 作为时刻; 并在依赖注入中添加:“moment”:“2.23.0”,但得到

未定义的错误……在 reactjs 中,
请帮助...

这家分店怎么不打烊? 最后评论于 2019 年 12 月 2 日。 @marwahaha

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

相关问题

benhathaway picture benhathaway  ·  3评论

RobinvanderVliet picture RobinvanderVliet  ·  3评论

ninigix picture ninigix  ·  3评论

Delgan picture Delgan  ·  3评论

ghost picture ghost  ·  3评论