2

真是奇怪的一个。我已经使用 TeamCity 构建了一个 Angular 应用程序,并尝试将业力测试作为构建任务运行:

ng test

2 个测试失败,抱怨缺少的依赖项恰好是proj4.

通过失败的测试,这真的很奇怪。

对 proj4 的调用是按函数进行的(在应用程序和测试中本地工作):

const coords = proj4(sourceProjection, targetProjection, point.toArray());

但是在构建服务器上 yield proj4 is not a function,但是 proj4 确实存在,但是它位于一个名为“default”的属性后面,因此在调试器中

proj4.default(sourceProjection, targetProjection, point.toArray());

作品。

我是说wtf!?谁或什么在补充该.default属性。红润的构建系统!

我已经仔细检查了 angular-cli、npm、node 等都是相同的版本。

angular-cli.jsonFWIW proj4 是一个 node_module 通过's script 属性包含在应用程序中。

4

1 回答 1

0

与包裹捆绑器相同。正如你所说,可以通过例如修复。更换

const proj4 = require("proj4")

const proj4 = require("proj4").default

于 2020-12-20T12:09:43.367 回答