找不到module:错误:无法解析module“fs”

IT技术 reactjs webpack webpack-dev-server babeljs
2021-03-29 09:58:42

我正在使用 Babel 和 Webpack 制作一个 React 应用程序,我想使用file-existsnpm 中包。我已经安装并保存了该包作为我项目的依赖项。运行 npm start 后,我​​收到此错误:

./~/file-exists/index.js 中的
错误未找到module:错误:无法解析 C:\GitHub\CryptoPrices\node_modules\file-exists
@ ./~/file-exists/index.js 中的module“fs” 3:9-22

file-exists使用fs的依赖,但由于某种原因,它不工作。如果我不需要file-exists任何地方,Npm 可以毫无问题地启动和运行

这是我的 webpack 配置文件:

module.exports = {
  entry: [
    './src/index.js'
  ],
  output: {
    path: __dirname,
    publicPath: '/',
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      // exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['react', 'es2015', 'stage-1']
      }
    }]
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  devServer: {
    historyApiFallback: true,
    contentBase: './'
  }
};

我是 Webpack 和 Babel 的新手,所以我有点迷茫。

2个回答

看起来您正在调用文件中fs file-exists方法index.js我不确定您在什么上下文中调用该方法,但这看起来像是对服务器端方法的客户端调用。我最近遇到了类似的问题。

据我了解,主要问题似乎是您无法在浏览器解释的客户端(前端)代码中调用服务器端(节点)方法。您必须从服务器调用它们。

Webpack 可以将fsmodule代码加载到您的前端,但浏览器实际上无法解释这些 Node 方法并运行它们;只有 Node 环境可以做到这一点。(更多在这里)

您可以通过修改在fs服务器端某处发生的方法调用来解决核心问题,或者找到一个等效的浏览器支持的包,该包提供与fs您需要方法相同的功能,但可以在浏览器中运行。

快速搜索“浏览器的 fs module”会显示各种可能满足您需要的选项,例如fs-webbrowserify-fsfiler

这是一个类似的问题,有一些见解。 在 React.js、node.js、webpack、babel、express 中使用 fs module

这是另一个相关的问题。stackoverflow.com/questions/35951874/...
2021-05-26 09:58:42
关于这个主题的另一个线程...... stackoverflow.com/questions/23959868/ ......
2021-06-02 09:58:42
谢谢你的回答。这个错误让我们烦恼了这么久。最终将代码从 NextJS module移到了 Cloud Functions module,它的效果非常好。
2021-06-16 09:58:42
您可能还会发现这个线程很有趣。它正在讨论在浏览器中使用 fs 的类似情况。stackoverflow.com/questions/46467858/...
2021-06-19 09:58:42
node: {
  fs: 'empty'
}

尝试将上面的代码添加到您的 webpack 配置文件中,错误应该会消失。

我已经试过了,错误消失了,但文件存在不起作用
2021-05-24 09:58:42