angular - 在 Angular 库中使用带有 Ng-Packagr 的全局变量
问题描述
鉴于我们试图在使用 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"
},
...
有人知道我如何调试和调查这个吗?
解决方案
我找到了解决这个问题的方法,但我对解决方案不满意。
在以下链接中,ng-packagr 的作者建议使用三斜杠引用来引用 .d.ts。
推荐阅读
- sql - 如何从 postgres 中的 jsonb 列获取数据?
- java - 关于 java 中的 equals() 方法,下列哪项是正确的?
- python - 有没有办法分段读取 JSON 文件?
- c# - 带有外部 PostGres 的 Dotnet EF 迁移失败,因为 db 尚未准备好
- deepsecurity - Deepsecurity 的管理控制台
- javascript - 错误:函数在 Cloud Functions 中返回未定义、预期的 Promise 或值
- tensorflow - MatMul中的Keras LSTM Dtype不一样
- text - 您可以在 RTF 文件中超链接文档吗?
- r - 用于在 Shiny 中过滤表的 Null SelectInput
- python - 如何将flask-python中的小数点后2位浮点数传递给html?