gridsome.server. js не распознает функцию addCollection - PullRequest
0 голосов
/ 12 февраля 2020

Я пробую Gridsome и Vue. js для довольно большой конверсии сайта. Веб-сайт должен иметь возможность загружать данные из API. Я пытался следовать инструкциям на https://gridsome.org/docs/fetching-data/#import -from-apis - Я вставил в пример кода.

Однако, я получаю эту ошибку, когда пытаюсь запустить gridsome development

C: \ projects \ folder \ project> gridsome development Gridsome v0.6.9

Инициализация плагинов ... Initialize - 0,97s Ошибка типа: actions.addCollection не является функцией на api.loadSource (C: \ projects \ VueJS -Research \ my-gridsome-test-VS \ gridsome.server . js: 17: 36) at process._tickCallback (internal / process / next_tick. js: 68: 7)

является новым для Vue. js, I ' Я не уверен, что здесь происходит. есть ли пакет, который я пропускаю?

Я должен сказать, что если следование документации вызывает подобные проблемы, мне, возможно, придется прийти к выводу, что Gridsome недостаточно зрел, чтобы использовать его в коммерческих условиях, и мы могли бы надо искать где-нибудь еще.

Любая помощь будет оценена, спасибо.

код в файле gridsome.server. js:



const axios = require('axios')

module.exports = function (api) {

    api.loadSource(async actions => {

        const { data } = await axios.get('http://dev.client.local/api/items/suggestitems?family=someCategory')

        const collection = actions.addCollection({ typeName: 'clientItems' })


        for (const item of data) {
            collection.addNode({
                label: item.label,
                labelNoFamily: item.labelNoFamily,
                path: item.path
            })
        }
    })

  //api.loadSource(({ addContentType }) => {
  //  // Use the Data Store API here: https://gridsome.org/docs/data-store-api
  //})

  api.createPages(({ createPage }) => {
    // Use the Pages API here: https://gridsome.org/docs/pages-api
  })


}

1 Ответ

1 голос
/ 13 февраля 2020

Решено:

Я был немного озадачен этим, поэтому мне пришлось искать, как найти, какая версия Gridsome была установлена. Он не был установлен глобально, поэтому мне пришлось перейти к нужной папке, чтобы узнать, какая это была папка.

Оказалось, что это было 0.6.9, а последняя - 0.7.12, хотя я и начал этот проект с npm install gridsome (я бы подумал, что npm install получит самую последнюю версию)

npm install npm -check-updates показало, что в bootstrap отсутствует зависимость так что мне, видимо, пришлось сначала это исправить. Я пытался запустить 'npm install gridsome' и 'npm update gridsome' и различные другие перестановки, чтобы получить сложное обновление, но этого не произошло.

Решение было:

  • 'npm i jquery@1.9.1 --save'
  • 'npm исправление аудита' (не уверен, если это было необходимо)
  • 'npm установить npm -check-updates '(также не уверен, если это необходимо)
  • , за которым следует' npm i gridsome@0.7.12 --save '

Очевидно, опция --save обновляет файл пакета. json в локальной папке, что также может быть необходимо.

...