gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:38 27 4
gpt4 key购买 nike

我有我的自定义库,它是通过 npm 发布的。它声明 peerDependency "lodash": "4.15.*"

据我了解,这意味着无论谁想要使用我的库,都应该提供指定版本的 lodash。所以在我的 npm 依赖项的应用程序中,我有 "lodash": "4.15.*" 但是当使用我的自定义库中的组件时,我收到以下 ReferenceError: _ is not defined。我还在我的 app.js 中添加了 require('lodash'); 但它没有帮助。

为了完成这项工作,我还应该做什么?

库是用 AngularJS 1.5 和 TypeScript 编写的。我正在尝试将它与普通的 AngularJS 1.5 应用程序一起使用。

编辑。

我假设在我的库中,变量 _ 是全局变量,因此它不会导入到使用它的任何文件中。

最佳答案

您关于 _ 是全局的假设是不正确的。如果您使用的是 npm 版本的 lodash,它是一个不会全局导出任何内容的 commonjs 模块。

这意味着,除非你在 browserify 中使用一些特殊的插件来全局导出 _,或者你使用脚本标签从 cdn 包含 lodash,否则 _ 将未定义。

假设您使用的是 typescript 2.0 并且已经安装了 @types/lodash npm 包,那么在每个需要使用它的脚本中导入 lodash 的正确方法是:

import * as _ from 'lodash';

这将转译为:

var _ = require('lodash')

这应该足以让节点(或 browserify 在 web 中使用它时)正确包含并设置 _ 可用。

关于javascript - _ (lodash) 声明为 peerDependency 时的引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40454356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com