繁体   English   中英

声明为peerDependency时_(lodash)的引用错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM