在webpackMissingModule上找不到模块“ fs”

时间:2019-01-17 10:19:14

标签: node.js webpack fs

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

我尝试设置:

  1. 目标:“节点”,但会引发另一个错误
  2. 节点:{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'
      }
    };
    

它不应出现此错误并正常工作。

1 个答案:

答案 0 :(得分:1)

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

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