2016-08-03 3 views
1

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

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

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

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

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

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

Мой вопрос: как я могу справиться с этим.

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

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

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

+0

Вы не должны использовать jquery, это только для браузера – vitalyster

ответ

0

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

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

Смежные вопросы