我正在使用 Angular 7 和 momentjs ^2.6。我在 UAT 服务器开发应用程序构建中遇到了 momentjs 的问题。
我有三台服务器
我正在使用开发运营管理来构建和部署过程。本地、DEV 和 QA 一切正常
但是 momentjs 在 UAT 服务器中抛出错误。
错误:矩不是函数
但是如果我正在为 UAT 进行重建,它工作正常。
有人对这个问题有任何想法吗?有时 moment 工作正常,但有时却不起作用。如果它不起作用,那么如果我重建,那么它在 UAT 中工作正常。
更改 package.json 文件中的代码。
从目录中删除 node_modules 和 package-lock.json。
更改版本并运行 NPM Install
"moment-timezone": "^0.5.7",
致
"moment-timezone": "0.5.23",
从@Surendra的关键点回答,是的!目前 2.5 及以上版本会抛出此类错误。当我更改为 2.5 后,我可以在所有服务器中重现相同的错误。
所以主要问题是npm安装是在UAT中4个月前发生的,所以它安装了最新版本,即4个月前发布的时刻。但在 QA 中,旧版本 (2.4) 存在,因为节点文件夹是 7 个月前在 QA 服务器中创建的,这意味着 2.4 是当时的最新版本。
解决方案:所以我直接在所有服务器上安装了2.5而不是自动更新(通过删除胡萝卜符号)。