簡體   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