Окно не определено при импорте пакета npm?

Я пытаюсь научиться создавать и публиковать пакет npm.

Я создал пакет npm, https://github.com/nitte93/OnBoarding для целей обучения.

https://www.npmjs.com/package/onBoarding

Он отлично работает в сборке dev, но когда я пытаюсь импортировать его в свое изоморфное приложение для реагирования, я получаю: ReferenceError: window is not defined

Я не использовал явным образом объект окна в пакете, но есть места, где я явно использовал jquery.

Теперь я не уверен, но все, что я понял, это то, что при импорте этого пакета npm в мое изоморфное приложение я пытаюсь использовать объект окна в среде NODE, что я предполагаю неправильно, поскольку объект окна доступен только в браузере сторона.

Мой вопрос в том, как мне справиться с этим.

1) Нужно ли обрабатывать это в самом пакете npm.

2) Должен ли я обрабатывать это в своем изоморфном приложении? Как?

Пожалуйста, ответьте или укажите правильный ресурс для решения этой проблемы.


person nitte93user3232918    schedule 03.08.2016    source источник
comment
Вы не должны использовать jquery, это только для браузера   -  person vitalyster    schedule 03.08.2016


Ответы (1)


Я просмотрел ваш репозиторий, и единственное, что я думаю, может быть виновником, это то, что файлы js поставщика semantic-ui требуются в компоненте OnBoarding.js, который, как я полагаю, также является файлом, отображаемым сервером. Вместо этого вам нужно требовать те пакеты, которые запускаются только в браузере внутри клиентского файла (тот, который будет вызывать ReactDom.render().. Я думаю, что это /src/example/index.js).

Кроме того, как правило, не помещайте какой-либо код браузера в componentWillMount, так как он вызывается на сервере. Однако componentDidMount безопасен, так как вызывается только в браузере.

person BradByte    schedule 18.11.2016