真的很奇怪。我已经使用TeamCity构建了一个角度应用程序,并尝试将业力测试作为构建任务运行:
ng test
其中2个测试失败,抱怨缺少依赖性,恰好是proj4
。
逐步完成失败的测试,这真的很奇怪。
对proj4的调用是按函数调用的(在app和测试中本地工作):
const coords = proj4(sourceProjection, targetProjection, point.toArray());
但是在构建服务器上产生proj4 is not a function
,但是proj4确实存在,但它位于名为" default"的属性后面,因此在调试器中
proj4.default(sourceProjection, targetProjection, point.toArray());
作品。
我的意思是wtf!?谁或什么是.default
财产的补充。 Ruddy构建系统!
我已经仔细检查了angular-cli,npm,node等都是相同的版本。
FWIW proj4是通过angular-cli.json
脚本属性在应用中包含的node_module。
答案 0 :(得分:0)
包裹打包器也是如此。正如您所说,可以通过例如修复。替换
const proj4 = require("proj4")
与
const proj4 = require("proj4").default