GatsbyJS ошибка веб-пакета, неопределенные переменные - PullRequest
0 голосов
/ 09 мая 2018

Мне очень трудно понять, какую ошибку выдает сервер, когда я запускаю сборку gatsby для создания общедоступных файлов на моем сервере nginx

error Building static HTML for pages failed
WebpackError: Cannot read property 'map' of undefined

Странно то, что когда я запускаю gatsby development, собираю на своей локальной машине, все работает нормально, ошибки не выдается. Только когда я запускаю сборку gatsby на моем сервере Nginx, эта ошибка появляется. Оба файла синхронизируются правильно.

По ошибке, теги не определены. Но он существует, я проверил с помощью localhost graphQL. Что затем приводит к тому, что я описываю переменные, но если это не работает, то остальные, такие как title, slug, date, html, также не должны работать. Но это происходит, когда я вынимаю метки.

    const {title, date, slug, excerpt } = this.props.data.contentfulBlog;
    const tags = this.props.data.contentfulBlog.category;
    const html = this.props.data.contentfulBlog.childContentfulBlogHtmlTextNode.childMarkdownRemark.html;

    return(
    <div>
      <Helmet> 
            <title>{title}</title>
            <meta name="description" content={excerpt}/>
            <meta name="keywords" content={tags.map((tag) => (String(tag.tagTitle)))}/>
      </Helmet>

Так что я понятия не имею, почему я не могу получить доступ к переменной tags при сборке на моем сервере, но она работает на локальной машине. Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

У меня была такая же проблема.

В моем случае, опора x является массивом и является обязательной. но звонок x.map возвращает

cannot read property 'map' of undefined

Я исправил это, указав для проп x значение по умолчанию [].

0 голосов
/ 11 мая 2018

Хотя я не уверен, почему вам нужно использовать мета keywords, поскольку Google и другие поисковые системы не используют его для своей системы рейтинга , я думаю, что вы можете решить свою проблему, выполнив как то так:

<meta name="keywords" content={tags ? tags.map((tag) => (String(tag.tagTitle))) : ''}/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...