2016-12-27 11 views
0

Я пишу пакет НПМ, который зависит от:предотвратить реакцию от того в комплекте в моем модуле так реагировать не может существовать дважды

"peerDependencies": { 
    "react": "15.4.1", 
}, 
"dependencies": { 
    "classnames": "2.2.5", 
    "react-onclickoutside": "5.8.3", 
    "styled-components": "1.1.2" 
} 

я добавил их в качестве зависимостей сверстников.

Я создал сборку webpack, и я создал модуль «umd», который я хочу импортировать в свое приложение.

Проблема в том, что компонент из модуля, который зависит от реакции на неаккуратном расстоянии, жалуется на наличие Реакция.

Это код, который может быть переключен и генерировать эту ошибку:

DropDown = onClickOutside(DropDown, { 
    handleClickOutside(instance) { 
    return instance.closeMenu; 
    }, 
}); 

Это даст мне эту ошибку:

Error: Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: ....).(…) 

Если я смотрю на моем модуле UMD, я могу видеть, что мой равноправные связи, вероятно, поэтому в моем приложении есть два варианта React.

Я хотел бы знать, как я могу предотвратить Webpack от пакетирования React реагирует на моем модуле

ответ

1

Вы можете использовать externals функции в WebPack. В принципе, он создаст модуль UMD без связывания React и предположив, что он будет предоставлен в другом месте

+0

Так что это мой другой вопрос: http://stackoverflow.com/questions/41349530/webpack2-how-to-exclude-react и-реагировать-РОМ из-сборки – BigDong