Javascript 声明为对等依赖时(lodash)的引用错误
我有通过npm发布的自定义库。它声明peerDependencyJavascript 声明为对等依赖时(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
“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
全局。