很抱歉,NOOB问题,我是npm和前端开发的新手。
我有一个库(A),该库需要为单例,但具有通过启动配置的初始化。我也有一个库B,它具有库A作为依赖项。在我的Web客户端中,我需要直接引用库A,同时也要引用库B。我在我的Web客户端中初始化库A。
根据我的调查,看来我的Web客户端和库B使用的是库A的副本,因此,由于库A仅用作单例,因此库B对库A的调用因save: function( props ) {
const { attributes, className } = props;
const wrapperStyle = {
backgroundColor: attributes.backgroundColor,
backgroundImage: attributes.backgroundImage && 'url(' + attributes.backgroundImage + ')',
};
const classes = classnames(
className,
{ [ `has-${ attributes.includeContent ? 'content' : 'no-content' }` ] : attributes.includeContent },
{ [ `align${ attributes.align }` ]: attributes.align && attributes.fullWidthBackground },
dimRatioToClass( attributes.backgroundOpacity ),
{
'has-background-dim': attributes.backgroundOpacity !== 0,
},
attributes.position,
);
return (
<div style={ wrapperStyle } className={ classes }>
<div className="wrapper-inner">
<div className="wrapper-inner-blocks">
{ attributes.includeContent === true &&
<InnerBlocks.Content />
}
</div>
</div>
</div>
);
}
而失败。 / p>
undefined
在我的Web客户端库中,package.json中引用了A和B。我的问题是,有没有办法告诉库B使用Web客户端直接引用的库A?
答案 0 :(得分:1)
此在NPM 3和更高。
支持只要library A
和library B
的版本约束在web-client
和library A
中安装,library B
的一个副本将被web-client
和library B
使用。 web-client
个依赖项。
如果版本限制不匹配,则library A
和library A
将拥有自己的npm dedupe
副本。
这是可能得到的多个副本node_modules
如果项目的依赖并没有同时安装。
在这种情况下
npm i
或删除import re
from django.conf import settings
from django.utils.translation import get_language
from django import forms
from django.utils import formats, timezone
class BootstrapDatePicker(forms.DateInput):
format_re = re.compile(r'(?P<part>%[bBdDjmMnyY])')
def __init__(self, attrs=None, format=None):
'''
for a list of useful attributes see:
http://bootstrap-datepicker.readthedocs.io/en/latest/options.html
Most options can be provided via data-attributes. An option can be
converted to a data-attribute by taking its name, replacing each
uppercase letter with its lowercase equivalent preceded by a dash, and
prepending "data-date-" to the result. For example, startDate would be
data-date-start-date, format would be data-date-format, and
daysOfWeekDisabled would be data-date-days-of-week-disabled.
'''
# final_attrs provides:
# - data-provide: apply datepicker to inline created inputs
# - data-date-language: apply the current language
# - data-date-format: apply the current format for dates
final_attrs = {
'data-provide': 'datepicker',
'data-date-language': get_language(),
'data-date-format': self.get_date_format(format=format),
'data-date-autoclose': 'true',
'data-date-clear-btn': 'true',
'data-date-today-btn': 'linked',
'data-date-today-highlight': 'true',
}
if attrs is not None:
classes = attrs.get('class', '').split(' ')
classes.append('datepicker')
attrs['class'] = ' '.join(classes)
final_attrs.update(attrs)
super(BootstrapDatePicker, self).__init__(attrs=final_attrs, format=format)
def get_date_format(self, format=None):
format_map = {
'%d': 'dd',
'%j': 'd',
'%m': 'mm',
'%n': 'm',
'%y': 'yy',
'%Y': 'yyyy',
'%b': 'M',
'%B': 'MM',
}
if format is None:
format = formats.get_format(self.format_key)[0]
return re.sub(self.format_re, lambda x: format_map[x.group()], format)
@property
def media(self):
root = 'vendor/bootstrap-datepicker'
css = {'screen': ('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css',)}
js = ['%s/js/bootstrap-datepicker.min.js' % root]
js += ['%s/locales/bootstrap-datepicker.%s.min.js' % (root, lang) for lang, _ in settings.LANGUAGES]
return forms.Media(js=js, css=css)
并使用
class MyModelForm(BootstrapForm, forms.ModelForm):
class Meta:
model = myModel
fields = ('field1', 'field2', 'date')
widgets = {
'data': BootstrapDateTimePicker(attrs={'class': 'form-control'}),
}
会有所帮助。