鉴于我们试图在使用 ng-packagr 构建的 Angular 项目中引用 Lodash,我们收到以下错误:
错误 TS2686:“_”指的是一个 UMD 全局,但当前文件是一个模块。考虑改为添加导入。
这向我表明它没有正确选择我们设置的打字稿定义文件。
该错误仅在使用 ng-packagr 构建时发生。使用 ng-serve 测试演示应用程序时,它工作正常。
打字.d.ts
/* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
id: string;
}
// lodash global typing - begin
declare namespace _ {
}
// lodash global typing - end
我在 ng-packagr 的 github 页面上看到了各种关于使用外部或嵌入式的问题,但文档非常稀少,并且该领域的实验没有为我提供任何线索。
我已经看到这个片段弹出了几次,它似乎准确地引用了正确的路径。
ng-package.json
...
"externals": {
"lodash": "./node_modules/lodash/index.js"
},
...
有人知道我如何调试和调查这个吗?