How to resolve the "Module not found: Error: Can't resolve 'fs'" in nuxt.js?

How to resolve the "Module not found: Error: Can't resolve 'fs'" in nuxt.js?

我对 node 有点陌生,但是通过大量搜索,看起来 'fs' 过去破坏了很多东西。我遇到过几个我试图通过 npm 安装的包,并且 运行 进入 Module not found: Error: Can't resolve 'fs' 错误太多了。

我已经 运行 安装了 npm,fs 下载了一个 placeholder package,但我真的停了下来,因为一个包(在几个包中)仍然依赖于 fs。

几乎 solution I find 导致在 webpack 设置的节点部分中将 fs 声明为空:

node: {
  fs: 'empty'
},

不幸的是,我正在使用 Vue.js 和 nuxt,并且没有 webpack 设置文件(据我所知)。我试图将它添加到我的 nuxt_config.js 但没有成功。 扩展(配置,CTX){ config.node = { fs: "empty" }; }

有没有办法 运行 在 nuxt_config 中排除?另外,有没有办法 运行 它同时仍然保留我的设置 运行 eslint 保存?

extend(config, ctx) {
  // Run ESLint on save
  if (ctx.isDev && ctx.isClient) {
    config.module.rules.push({
      enforce: 'pre',
      test: /\.(js|vue)$/,
      loader: 'eslint-loader',
      exclude: /(node_modules)/
    })
  }
}

谢谢。

建议正确,根据webpack看到documentation你应该将fs模块设置为'empty'

您是否尝试过将它插入构建块内顶层配置的 nuxt 配置中?

build: {
  extend (config, { isDev, isClient }) {

     config.node: {
        fs: 'empty'
      }

     // ....
  }
}

以防万一它有帮助。在我的例子中,这个错误突然出现并且无法说出原因。在尝试了所有方法(删除并重新安装 npm 包等...)后,我发现 VS CODE 自动引用了我刚刚保存的文件中的包,但我没有注意到。

在我的例子中,它添加了 import { query } from 'express'.

删除了该行,一切又恢复正常了。

用法可能会因版本而异。

在我的例子中,我必须用“=”字符定义 confing.node。

    build: {
        extend (config, { isDev, isClient }) { 
            config.node = {
                fs: "empty"
            }
        })
    }