我有自定义库,通过npm发布。它声明了peerDependency "lodash": "4.15.*"
据我了解,这意味着想要使用我的lib的人应该为lodash
提供指定的版本。因此,在我的npm依赖项应用程序中,我有"lodash": "4.15.*"
但是当我使用自定义库中的组件时,我会收到以下ReferenceError: _ is not defined
。
我还在require('lodash');
添加了app.js
,但没有帮助。
为了使这项工作,我还应该做些什么?
库是用AngularJS 1.5和TypeScript编写的。我试图将它与普通的AngularJS 1.5应用程序一起使用。
EDIT。
在我的库中,我假设变量_
是全局的,因此它不会导入任何使用它的文件中。
答案 0 :(得分:1)
您认为_
是全局的错误。如果您使用的是lodash的npm版本,那么它是一个commonjs模块,不会全局导出任何内容。
这意味着,除非您在browserify中使用某些特殊插件全局导出_
,或者您使用脚本标记从cdn中包含lodash,否则将不会定义_
。
假设您正在使用typescript 2.0并安装了@types/lodash
npm包,那么在每个需要使用它的脚本中导入lodash的正确方法是:
import * as _ from 'lodash';
这将转化为:
var _ = require('lodash')
对于节点(或在网络中使用它时browserify
)来说,这应该足以正确地包含和设置_
可用。