如何解决 nuxt.js 中的“找不到模块:错误:无法解析‘fs’”?

aka*_*all 4 node.js vue.js nuxt.js

我对节点有点陌生,但从大量搜索来看,“fs”似乎破坏了过去的很多东西。我遇到过几个尝试通过 npm 安装的软件包,但都遇到了Module not found: Error: Can't resolve 'fs'太多错误。

我已经运行了 npm install ,并且 fs 下载了一个占位符 package,但我真的停了下来,因为一个包(其中几个)仍然依赖于 fs 。

发现的几乎每个 解决方案都会导致在 webpack 设置的节点部分中声明为空:fs

node: {
  fs: 'empty'
},
Run Code Online (Sandbox Code Playgroud)

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

有没有办法在 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)/
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

小智 5

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

就我而言,它添加了 import { query } from 'express'.

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


小智 5

用途可能会根据版本而变化。

就我而言,我必须使用“=”字符定义confing.node。

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

Run Code Online (Sandbox Code Playgroud)