【问题标题】:moment is not a function in UAT server时刻不是 UAT 服务器中的功能
【发布时间】:2020-07-29 06:26:23
【问题描述】:

我正在使用 angular 7 和 momentjs ^2.6。我在 UAT 服务器开发应用程序构建中遇到了 momentjs 的问题。

我有三台服务器

  • 开发
  • 质量检查
  • UAT

我正在使用 dev-ops 管理进行构建和部署过程。在本地以及 DEV 和 QA 中一切正常

但是 momentjs 在 UAT 服务器中抛出错误。

错误:时刻不是函数

但如果我正在为 UAT 进行重建,它工作正常。

有人对这个问题有任何想法吗?有时片刻工作正常,但有时无法正常工作。如果它不工作,那么如果我重建,那么它在 UAT 中工作正常。

【问题讨论】:

  • 你有build per environment 还是一个版本和relase per environment
  • 在你的本地删除node_modules和package-lock.json,然后npm install,然后启动应用
  • 搜索错误消息会得到很多点击。您可以检查其中一个是否适用于您的情况。
  • @Drag13 我有build for env ,只是在发布任务时将构建的文件复制并粘贴到 IIS
  • @surendrakumar 我的问题是时刻在 UAT 服务器中的某些时间不在本地工作。它在其他环境中工作没有任何问题。

标签: angular typescript date momentjs devops


【解决方案1】:

在 package.json 文件中更改您的代码。

从您的目录中删除 node_modulespackage-lock.json

更改版本并运行 NPM 安装

 "moment-timezone": "^0.5.7",

"moment-timezone": "0.5.23",

【讨论】:

  • 但是为什么^ 在 Dev 和 QA 环境中工作?不仅仅是 UAT?有什么想法吗?
  • UAT 上可能会全新安装 NPM。
【解决方案2】:

@Surendra 的关键点回答,是的! 2.5及以上版本正在抛出这种错误。更改为 2.5 后,我可以在所有服务器中重现相同的错误。


所以主要问题是 npm 安装是在 4 个月前在 UAT 中发生的,所以它安装了最新版本,即 4 个月前发布的那一刻。但在 QA 中,旧版本(2.4)在那里,因为节点文件夹是在 QA 服务器中创建的 7 个月前,这意味着 2.4 是当时的最新版本。

解决方案: 所以我在所有服务器中直接安装了 2.5,而不是自动更新(删除了胡萝卜符号)。


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多