尽管安装了npm,但Gatsby找不到fs [英] Gatsby cannot find fs despite npm install

查看:81
本文介绍了尽管安装了npm,但Gatsby找不到fs的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在:

  • Ubuntu 16.04
  • Gatsby CLI版本:2.7.14
  • 盖茨比版本:2.13.21
  • 节点v10.16.0
  • NPM 6.10.1

我正在关注Gatsby教程> 7.从数据中以编程方式创建页面" .我无法解决此错误:

I'm following the Gatsby tutorial "7. Programmatically create pages from data". I can't solve this error:

This dependency was not found:
⠀
* fs in ./node_modules/electron/index.js,
⠀
To install it, you can run: npm install --save fs

我已经运行过npm install --save fs,然后再次尝试.但是会发生相同的错误.该目录的权限设置为a+rwx,到目前为止,一切都已正常安装.

I've run npm install --save fs already, and then tried it again. But the same error occurs. Permissions for the directory are set as a+rwx and everything has been installing fine up till this point.

当我按照教程的说明将此代码添加到gatsby-node.js时,会发生此错误:

This error happens when I add this code to gatsby-node.js as the tutorial says to:

const { createFilePath } = require(`gatsby-source-filesystem`)

exports.onCreateNode = ({ node, getNode }) => {
  if (node.internal.type === `MarkdownRemark`) {
    console.log(createFilePath({ node, getNode, basePath: `pages` }))
  }
}

运行gatsby develop -p 8001时的全部事件:

success open and validate gatsby-configs - 0.070 s
success load plugins - 0.636 s
success onPreInit - 0.005 s
success initialize cache - 0.012 s
success copy gatsby files - 0.092 s
success onPreBootstrap - 0.026 s
success source and transform nodes - 0.145 s
success building schema - 0.560 s
success createPages - 0.003 s
success createPagesStatefully - 0.078 s
success onPreExtractQueries - 0.004 s
success update schema - 0.087 s
success extract queries from components - 0.340 s
success write out requires - 0.009 s
success write out redirect data - 0.006 s
success onPostBootstrap - 0.003 s
⠀
info bootstrap finished - 9.246 s
⠀
success run static queries - 0.051 s — 1/1 23.83 queries/second
success run page queries - 0.040 s — 3/3 135.00 queries/second
 ERROR  Failed to compile with 7 errors                     10:01:07 PM
⠀
This dependency was not found:
⠀
* fs in ./node_modules/electron/index.js,
⠀
To install it, you can run: npm install --save fs
✖ 「wdm」:
ERROR in ./node_modules/electron/index.js
Module not found: Error: Can't resolve 'fs' in
'/home/testjs/tutorial-part-four/node_modules/electron'
 @ ./node_modules/electron/index.js 1:9-22
 @ ./node_modules/gatsby-source-filesystem/node_modules/got/index.js
 @ ./node_modules/gatsby-source-filesystem/create-remote-file-node.js
 @ ./node_modules/gatsby-source-filesystem/index.js
 @ ./src/pages/gatsby-node.js
 @ ./.cache/sync-requires.js
 @ ./.cache/app.js
 @ multi ./node_modules/event-source-polyfill/src/eventsource.js
(webpack)-hot-middleware/client.js?path=/__webpack_hmr&reload=true&over
lay=false ./.cache/app

ERROR in ./node_modules/fs-extra/lib/empty/index.js
Module not found: Error: Can't resolve 'fs' in
'/home/testjs/tutorial-part-four/node_modules/fs-extra/lib/empty'
 @ ./node_modules/fs-extra/lib/empty/index.js 4:11-24
 @ ./node_modules/fs-extra/lib/index.js
 @ ./node_modules/gatsby-source-filesystem/index.js
 @ ./src/pages/gatsby-node.js
 @ ./.cache/sync-requires.js
 @ ./.cache/app.js
 @ multi ./node_modules/event-source-polyfill/src/eventsource.js
(webpack)-hot-middleware/client.js?path=/__webpack_hmr&reload=true&over
lay=false ./.cache/app

ERROR in ./node_modules/graceful-fs/graceful-fs.js
Module not found: Error: Can't resolve 'fs' in
'/home/testjs/tutorial-part-four/node_modules/graceful-fs'
 @ ./node_modules/graceful-fs/graceful-fs.js 1:9-22
 @ ./node_modules/fs-extra/lib/fs/index.js
 @ ./node_modules/fs-extra/lib/index.js
 @ ./node_modules/gatsby-source-filesystem/index.js
 @ ./src/pages/gatsby-node.js
 @ ./.cache/sync-requires.js
 @ ./.cache/app.js
 @ multi ./node_modules/event-source-polyfill/src/eventsource.js
(webpack)-hot-middleware/client.js?path=/__webpack_hmr&reload=true&over
lay=false ./.cache/app

ERROR in ./node_modules/jsonfile/index.js
Module not found: Error: Can't resolve 'fs' in
'/home/testjs/tutorial-part-four/node_modules/jsonfile'
 @ ./node_modules/jsonfile/index.js 5:8-21
 @ ./node_modules/fs-extra/lib/json/jsonfile.js
 @ ./node_modules/fs-extra/lib/json/index.js
 @ ./node_modules/fs-extra/lib/index.js
 @ ./node_modules/gatsby-source-filesystem/index.js
 @ ./src/pages/gatsby-node.js
 @ ./.cache/sync-requires.js
 @ ./.cache/app.js
 @ multi ./node_modules/event-source-polyfill/src/eventsource.js
(webpack)-hot-middleware/client.js?path=/__webpack_hmr&reload=true&over
lay=false ./.cache/app

ERROR in ./node_modules/md5-file/index.js
Module not found: Error: Can't resolve 'fs' in
'/home/testjs/tutorial-part-four/node_modules/md5-file'
 @ ./node_modules/md5-file/index.js 4:9-22
 @ ./node_modules/gatsby-source-filesystem/create-file-node.js
 @
./node_modules/gatsby-source-filesystem/create-file-node-from-buffer.js
 @ ./node_modules/gatsby-source-filesystem/index.js
 @ ./src/pages/gatsby-node.js
 @ ./.cache/sync-requires.js
 @ ./.cache/app.js
 @ multi ./node_modules/event-source-polyfill/src/eventsource.js
(webpack)-hot-middleware/client.js?path=/__webpack_hmr&reload=true&over
lay=false ./.cache/app

ERROR in ./node_modules/read-chunk/index.js
Module not found: Error: Can't resolve 'fs' in
'/home/testjs/tutorial-part-four/node_modules/read-chunk'
 @ ./node_modules/read-chunk/index.js 2:11-24
ℹ 「wdm」: Failed to compile.

我搜索了此错误,并在几种情况下弹出该错误,但没有一种情况与Gatsby匹配.我是React和Gatsby的新手(因此是本教程),所以我还不知道如何处理.我该如何解决?

I googled this error and it pops up in several contexts, none of which match this case with Gatsby. I'm new to React and Gatsby (hence the tutorial), so I don't know how to deal with this yet. How should I fix it?

推荐答案

尝试编辑文件gatsby-node.js(或在源根目录中创建文件)并添加以下行:

Try to edit file gatsby-node.js (or create it in the source root directory) and add these lines:

exports.onCreateWebpackConfig = ({ actions, loaders, getConfig }) => {
    const config = getConfig()
    config.node = {
        fs: 'empty'
    }
}

这将修改您的Webpack配置并应解决问题

This will modify your Webpack config and should solve the issue

这篇关于尽管安装了npm,但Gatsby找不到fs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆