Lodash - '_'指的是UMD全局,而lodash.js不是模块错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lodash - '_'指的是UMD全局,而lodash.js不是模块错误相关的知识,希望对你有一定的参考价值。
如果我什么都不做并添加类型定义它适用于jquery但是lodash得到了
'_'表示UMD全局,但当前文件是模块。请考虑添加导入。
如果我尝试使用导入调用的任意组合导入lodash,我得到
lodash.js不是一个模块
我试图通过问一个问题here得到帮助,因为Angular(Angular 2)有another answer它被关闭了。我真的需要一个真正的答案,所以我用我自己的解决方案重新发布,希望有人最终会帮助我理解这个问题。
在这种情况下,我是:
- 不使用像Angular这样的框架
- 使用TypeScript
- 使用requirejs导入模块
- 使用Visual Studio
- 使用MVC5
我在我的全局类型定义文件(〜 src typings.d.ts)中添加了以下代码来解决问题。我正在使用Angular CLI 1.7
// lodash global typing - begin
declare namespace _ {
}
// lodash global typing - end
我在〜 src typings.d.ts中添加了:
declare const _;
这个对我有用。 See also
安装lodash后,我在我的工作文件中使用import * as _ from 'lodash';
。
'_'表示UMD全局,但当前文件是模块。请考虑添加导入。
这是由类型定义引起的。进入你的@ types / lodash文件并删除这些行:
export = _;
export as namespace _;
这将解决错误。
***编辑****
如果您的类型定义文件中有任何全局声明,则删除上面的导出语句将导致另一个错误,例如,如下所示:
declare global { }
要解决此问题,请将属性从全局声明移动到引用它们的接口 - 或者完全删除它们并将引用的类型更改为通用的。我不确定哪种解决方案能够做出更好的最终编译,但前者在我的应用程序中并没有像IE11那样引起任何问题。
以上是关于Lodash - '_'指的是UMD全局,而lodash.js不是模块错误的主要内容,如果未能解决你的问题,请参考以下文章