如何解决 nuxt.js 中的“Module not found: Error: Can't resolve 'fs'”?

Posted

技术标签:

【中文标题】如何解决 nuxt.js 中的“Module not found: Error: Can\'t resolve \'fs\'”?【英文标题】:How to resolve the "Module not found: Error: Can't resolve 'fs'" in nuxt.js?如何解决 nuxt.js 中的“Module not found: Error: Can't resolve 'fs'”? 【发布时间】:2019-05-28 20:46:23 【问题描述】:

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

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

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

node: 
  fs: 'empty'
,

不幸的是,我使用的是 Vue.js 和 nuxt,并且没有 webpack 设置文件(据我所知)。我试图将它添加到我的 nuxt_config.js 中,但没有成功。 扩展(配置,ctx) 配置节点 = 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)/
    )
  

谢谢。

【问题讨论】:

【参考方案1】:

用法可能因版本而异。

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

你刚刚拯救了我的一天......或一周。完全相同的事情发生在我身上,我一直在疯狂地重新安装和删除东西。非常感谢纳丁!【参考方案3】:

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

您是否尝试将其插入到构建块中***配置的 nuxt 配置中?

build: 
  extend (config,  isDev, isClient ) 

     config.node: 
        fs: 'empty'
      

     // ....
  

【讨论】:

非常感谢,@adamrights。我以为我已经按照您介绍的方式完成了,但显然,我没有 - 它按照您介绍的方式正常工作。我可以问一个后续问题:有没有办法将您拥有的内容与我的 eslint-on-save 设置 if (ctx.isDev... 上面的扩展块内结合起来? isDev, isClient 是您示例中的 ctx 对象。 try... build: ... // EXTEND extend (config, isClient ) if (isClient) config.module.rules.push( enforce: 'pre', test: /\.js$/ ,加载器:'eslint-loader',排除:/(node_modules)/,,强制:'pre',测试:/\.vue$/,加载器:'eslint-loader',排除:/(node_modules)/ , ) , 谢谢 - 我能够得到它......意识到我只是使用逗号分隔两个部分,我需要删除它。非常感谢您的帮助!

以上是关于如何解决 nuxt.js 中的“Module not found: Error: Can't resolve 'fs'”?的主要内容,如果未能解决你的问题,请参考以下文章

Nuxt.js服务端渲染实践,从开发到部署

如何将 npm 包中的 JS 文件包含到 Nuxt.js 中的单独页面

如何使用 laravel 后端 API 在 nuxt.js 中上传图片

故事书运行问题,我该如何解决?

如何在 Nuxt.js 中创建动态“面包屑”

如何使用 Nuxt.js 从缓存中排除组件?