node.js - 找不到模块 "fs"- 在 webpackMissingModule

标签 node.js webpack fs

我的服务器启动并正确运行,但是当我在浏览器中输入 URL 时,出现错误“找不到模块 'fs'”。

我尝试设置:

  1. 目标:“Node ”,但它引发了另一个错误
  2. node: { fs: 'empty' },但随后出现错误“找不到导出”

    "use strict";
    
    const webpack = require('webpack');
    const argv = require('minimist')(process.argv.slice(2));
    const DEBUG = !argv.release;
    
    const path = require('path');
    
    var plugins = [
      new webpack.optimize.CommonsChunkPlugin({
        names: ['common', 'vendors'],
        filename: '[name].js',
        minChunks: Infinity
      }),
      new webpack.optimize.OccurenceOrderPlugin(),
      new webpack.DefinePlugin({
        'process.env.NODE_ENV':  DEBUG ? '"development"' : '"production"',
        "process.argv.verbose": !!DEBUG
      }),
      new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
        jquery: "jquery"
      })
    ].concat(DEBUG ? [] : [
      new webpack.optimize.DedupePlugin(),
      new webpack.optimize.UglifyJsPlugin({
        minimize: true,
        compress: {
          warnings: true
        }
      }),
      new webpack.optimize.AggressiveMergingPlugin()
    ]);
    
    module.exports = {
      entry: {
        app: path.join(__dirname, '..', 'app', 'app.js'),
        vendors: [
          'react',
          'react-dom',
          'react-bootstrap',
          'react-router',
          'alt',
          'lodash',
          'superagent',
          'react-router-role-authorization',
          'react-validation-decorator'
        ]
      },
    
      output: {
        publicPath: '/js/',
        path: './wwwroot/js/',
        filename: '[name].js',
        chunkFilename: "[id].[name].js"
      },
    
      context: path.join(__dirname, '..'),
    
      plugins: plugins,
    
      cache: DEBUG,
      debug: DEBUG,
      watch: DEBUG,
    
      stats: {
        colors: true
      },
    
      resolve: {
        extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.json']
      },
    
      module: {
        loaders: [
          {
            test: /\.js$/,
            exclude: /node_modules/,
            loaders: ['babel-loader']
          },
          {
            test: /\.(less|css)$/,
            loaders: ["style", "css", "less"]
          },
          {
            test: /\.(png|jpg|jpeg|gif|svg|woff|woff2)$/,
            loader: 'url-loader?limit=10000'
          },
          {
            test: /\.(eot|ttf|wav|mp3|mp4)$/,
            loader: 'file-loader'
          },
          {
            test: /\.json$/,
            loader: 'json-loader'
          }
        ]
      },
      node: {
        net: 'mock',
        dns: 'mock'
      }
    };
    

它不应该出现此错误并且可以正常工作。

最佳答案

我在您发布的 webpack 设置中没有看到任何提及 fs 模块的内容。所以,我的猜测是您的输出应用程序(app.js?)正在尝试要求并使用fs。 Webpack 正在构建一个客户端前端应用程序,该应用程序将在浏览器中加载; fs 在浏览器中不可用

(仔细检查并确保您没有尝试在客户端应用程序中使用 fs 在用户计算机上读取和写入文件。这在客户端应用程序中是不可能的基于浏览器的应用程序。有关具有前端和后端的 Web 应用程序概念的介绍,请查看文章 React App With Node Backend 。)

关于node.js - 找不到模块 "fs"- 在 webpackMissingModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54233690/

相关文章:

node.js - Firebase Cloud Functions 与 TypeScript : Realtime Database update ends with success but not updates anything, JS 工作正常

javascript - 如何像 JSFiddle 中那样创建唯一的 session ID?

javascript - Laravel-mix@6.0.10 遇到未知错误 Uncaught DOMException : Failed to construct 'WebSocket'

javascript - webpack 3 DeprecationWarning : Chunk. 模块已弃用

node.js - fs 模块函数使用的当前目录是什么?

node.js - 如何向传入的 HTTP 请求添加 header ?

javascript - Ben Awad 视频教程问题与 npx mikro-orm 迁移 :create

node.js - 如何在 webpack 上自动安装 npm 包

node.js - 使用 fs.readdir 和 fs.statSync 返回 ENOENT, no such file or directory 错误

node.js - 为什么 fs.readFileSync() 比 await fsPromises.readFile() 快?