Javascript 声明为对等依赖时(lodash)的引用错误

Javascript 声明为对等依赖时(lodash)的引用错误,javascript,angularjs,typescript,lodash,Javascript,Angularjs,Typescript,Lodash,我有通过npm发布的自定义库。它声明peerDependency“lodash”:“4.15.*” 据我所知,这意味着任何想要使用我的lib的人都应该提供指定版本的lodash。因此,在我的npm dependencies应用程序中,我有“lodash”:“4.15.*”,但当使用自定义库中的组件时,我收到以下引用错误:\未定义。 我还添加了require('lodash')到我的app.js但是它没有帮助 我还应该做些什么才能使这项工作顺利进行 库是用AngularJS 1.5和TypeScr

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

据我所知,这意味着任何想要使用我的lib的人都应该提供指定版本的
lodash
。因此,在我的npm dependencies应用程序中,我有
“lodash”:“4.15.*”
,但当使用自定义库中的组件时,我收到以下
引用错误:\未定义
。
我还添加了
require('lodash')
到我的
app.js
但是它没有帮助

我还应该做些什么才能使这项工作顺利进行

库是用AngularJS 1.5和TypeScript编写的。我正在尝试将其用于普通AngularJS 1.5应用程序

编辑


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

您认为
\uu
是全局变量的假设是不正确的。如果您使用的是lodash的npm版本,它是一个commonjs模块,不会全局导出任何内容

这意味着,除非您使用browserify中的某个特殊插件全局导出
,或者使用脚本标记从cdn中包含lodash,否则将不会定义

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

import * as _ from 'lodash';
这将被传输为:

var _ = require('lodash')

这应该足以使节点(或在web中使用时将其浏览化)正确地包含并设置为可用

@JonathanLonowski不幸的是
var\u=require('lodash')
没有任何区别。您正在尝试加载lodash客户端还是服务器端?NPM可以用于客户端依赖项,但通常只有在使用构建工具(如Browserify或Webpack)时,它才能转换节点的模块系统,以便浏览器能够理解应该发生什么。我正在尝试在客户端加载Lodash。是的,我正在使用Browserify将我所有的脚本放在一个文件中。你不会。对等依赖项在当前NPM版本中已被弃用,仅作为提醒您需要将这些软件包与相关软件包一起安装而存在。当它是角度库的
angular
依赖项时,这一点很明显。它是否是Lodash并不明显。这完全取决于构建的细节。如果在包中使用npm依赖项,则应在使用
\uu
的每个位置使用
var=require('lodash')
。当应用程序使用Browserify构建时,不会出现
\uu
全局。