在Angular库中使用带有Ng-Packagr的全局

时间:2018-06-04 15:14:32

标签: angular ng-packagr

鉴于我们试图在使用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"
    },
...

任何人都有任何想法我可以调试和调查这个?

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法,但我对解决方案不满意。

在以下链接中,ng-packagr的作者建议使用三次斜杠引用来引用.d.ts。

https://github.com/dherges/ng-packagr/issues/908