我正在使用 Babel 和 Webpack 制作一个 React 应用程序,并且我想使用 npm 中的 file-exists
包。我已经安装了该包并将其保存为我的项目的依赖项。运行 npm start 后出现此错误:
ERROR in ./~/file-exists/index.js
Module not found: Error: Cannot resolve module 'fs' in C:\GitHub\CryptoPrices\node_modules\file-exists
@ ./~/file-exists/index.js 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 的新手,所以我有点迷失。
最佳答案
看起来您正在调用 index.js
文件中的 fs
file-exists
方法。我不确定您在什么上下文中调用该方法,但这看起来像是客户端对服务器端方法的调用。我最近遇到了类似的问题。
据我了解,主要问题似乎是您无法在浏览器解释的客户端(前端)代码中调用服务器端(Node)方法。您必须从服务器调用它们。
Webpack 可以将 fs
模块代码加载到前端,但浏览器实际上无法解释这些 Node 方法并运行它们;只有 Node 环境才能做到这一点。 (more here)
您可以通过修改对 fs
方法的调用以在服务器端某处发生来解决核心问题,或者找到一个等效的浏览器支持的包,该包提供与 fs 相同的功能
您需要但可以在浏览器中运行的方法。
快速搜索“浏览器的 fs 模块”会出现各种可能适合您需要的选项,例如 fs-web , browserify-fs或filer .
这是一个类似的问题,有一些见解。 Use fs module in React.js,node.js, webpack, babel,express
关于reactjs - 找不到模块 : Error: Cannot resolve module 'fs' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48358748/