[英]Reference error for _ (lodash) when declared as peerDependency
我有我的自定义库,通过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应用程序一起使用。
编辑。
在我的库中,我假设,变量_
是全局的,因此它不会导入任何使用它的文件中。
你认为_
是全局的假设是不正确的。 如果您使用的是lodash的npm版本,那么它是一个commonjs模块,不会全局导出任何内容。
这意味着,除非您在browserify中使用一些特殊插件来全局导出_
,或者您使用脚本标记从cdn中包含lodash,否则将不会定义_
。
假设您正在使用typescript 2.0并安装了@types/lodash
npm包,那么在每个需要使用它的脚本中导入lodash的正确方法是:
import * as _ from 'lodash';
这将转化为:
var _ = require('lodash')
这应该是足够的节点(或browserify
在网络使用它时)正确包括和设置_
是可用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.