鉴于我们试图在使用ng-packagr构建的Angular项目中引用Lodash,我们收到以下错误:
错误TS2686:'_'表示UMD全局,但当前文件是a 模块。请考虑添加导入。
这告诉我,它没有正确地找到我们设置的打字稿定义文件。
仅在使用ng-packagr构建时才会出现此错误。使用ng-serve测试演示应用程序时,它可以正常工作。
typings.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"
},
...
任何人都有任何想法我可以调试和调查这个?
答案 0 :(得分:0)
我找到了解决此问题的方法,但我对解决方案不满意。
在以下链接中,ng-packagr的作者建议使用三次斜杠引用来引用.d.ts。