使用 webpack 时节点找不到模块“fs”

新手上路,请多包涵

我正在使用 node.js 和 webpack 创建一个包。根据我的阅读,node.js 应该包含 fs 用于管理文件的模块。但是,当我调用 require("fs") 我得到一个 Cannot find module "fs" 错误。我应该怎么办?

原文由 user3799968 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

我自己在与 webpack 捆绑时遇到了这个问题,并在 这个线程 上找到了答案。

为我解决它的方法是使用以下配置:

 module.exports = {
  entry: "./app",
  output: {
    path: __dirname,
    filename: "bundle.js"
  },
  module: {
      loaders: [
          {
              test: /\.js$/,
              exclude: 'node_modules',
              loader: 'babel',
              query: {presets: ['es2015']},
          }
      ]
  },
  target: 'node'
};

通过将目标设置为节点,webpack 将进行必要的更改以捆绑您的节点应用程序

编辑:这个答案针对的 webpack 1.x 现在已被取代。

原文由 Joe Withey 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你在 nodejs 环境中运行你的 webpack 包,那么 target: ‘node’ 在 webpack.config.js 文件中是必需的,否则 webpack 将默认值作为 web 来进行目标 检查

您可以通过两种方式解决问题

将以下配置添加到您的 webpack.config.js

 node: {
    fs: "empty"
}

要么

将以下配置添加到您的 package.json

 "browser": {
    "fs": false
}

编辑:

有前途的解决办法是

"browser": {
   "fs": false
}

原文由 Hemadri Dasari 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题