0

我正在尝试使用 Gridsome 和 Vue.js 进行相当大的网站转换。该网站需要能够从 API 加载数据。我一直在尝试遵循https://gridsome.org/docs/fetching-data/#import-from-apis上的说明- 我粘贴了示例代码。

但是,当我尝试运行 gridsome develop 时出现此错误

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

正在初始化插件... Initialize - 0.97s TypeError: actions.addCollection is not a function at api.loadSource (C:\projects\VueJS-Research\my-gridsome-test-VS\gridsome.server.js:17:36)在 process._tickCallback (internal/process/next_tick.js:68:7)

作为 Vue.js 的新手,我不确定这里发生了什么。有我丢失的包裹吗?

我不得不说,如果遵循文档会导致这些问题,我可能不得不得出结论,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
  })


}
4

1 回答 1

1

解决了:

我对此有点困惑,所以我不得不查找如何找到安装了哪个版本的gridsome。它不是全局安装的,所以我必须导航到正确的文件夹才能看到它是哪一个。

原来是 0.6.9,最新的是 0.7.12,即使我是用“npm install gridsome”开始这个项目的(我原以为 npm install 会得到最新的)

npm install npm-check-updates 显示引导程序缺少依赖项,所以我显然必须先修复它。我曾尝试运行“npm install gridsome”和“npm update gridsome”以及其他各种排列来更新gridsome,但它从未这样做过。

解决方案是:

  • 'npm i jquery@1.9.1 --save'
  • 'npm audit fix'(不确定是否有必要)
  • 'npm install npm-check-updates'(也不确定是否有必要)
  • 其次是'npm i gridsome@0.7.12 --save'

显然 --save 选项也会更新本地文件夹中的 package.json 文件,这也可能是必要的。

于 2020-02-13T05:37:43.023 回答