webpack构建失败

时间:2018-01-10 12:03:38

标签: node.js reactjs webpack

我正在构建一个应用程序,前端有反应,后端有nodejs。 y react由webpack打包并配置我的服务器与前端同时运行。几个月来,我一直在成功构建我的应用程序,突然我的构建开始失败,抛出下面的警告,然后是错误

  警告在./server/~/sequelize/lib/sequelize.js严重   依赖项:388:61-74依赖项的请求是一个表达式   @ ./server/~/sequelize/lib/sequelize.js 388:61-74

之类的错误
   ./server/models/index.js中的错误找不到模块:错误:不能   解决模块' fs'在/ PATH / static / server / models

我的webpack曾经如下配置

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: ['babel-polyfill', 'react-hot-loader/patch', path.normalize(__dirname + '/src/index')],
    devtool: 'cheap-module-source-map',
    devServer: {
        hot: true
    },
    output: {
        filename: 'bundle.js',
        publicPath: '/',
        path: path.join(__dirname, 'server')
    },
    module: {
        loaders: [
            {
                loader: 'babel-loader',
                test: /\.js$/,
                exclude: /node_modules/
            },
            {
                loader: 'style!css',
                test: /\.css$/,
                include: [path.resolve(__dirname, 'public', 'css')]
            },
            {
                test: /\.json$/,
                loader: "json-loader"
            }
        ],
        plugins: [
            new webpack.NoErrorsPlugin(),
            new webpack.DefinePlugin({
                //'process.env.NODE_ENV': JSON.stringify('development')
            }),
            new webpack.NamedModulesPlugin(),
            new webpack.HotModuleReplacementPlugin()
        ],
    }
};

我的服务器配置

var webpack = require('webpack');
var config = require('./webpack.config');
var path = require('path');
var express = require('express');
var app = express();
const http = require('http');
const port = process.env.PORT || 3000;

var compiler = webpack(config);


require('./server/config/express')(app, port, compiler, config);

const server = http.createServer(app);

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function (err, req, res, next) {
    res.status(err.code || 500)
      .json({
        status: 'error',
        message: err
      });
  });
}

app.use(function (err, req, res, next) {
  res.status(err.status || 500)
    .json({
      status: 'error',
      message: err.message
    });
});

server.on('close', () => {
  models.sequelize.close();
});

我上面的服务器配置基于服务器文件夹,我不希望我的webpack构建该文件夹。我的构建工作已经好几个月,直到3天它突然停止抛出上面的错误。我发现它正在构建/打包我不期望的服务器文件夹。

然后我将我的babel-loader更新为

 {
   loader: 'babel-loader',
   test: /\.js$/,
   exclude: [/node_modules/, /server/]
}

但无济于事。我真的很困惑我如何才能最好地配置它。我的发展突然停止了。请帮助任何帮助。

1 个答案:

答案 0 :(得分:0)

事实证明,一位同事错误地从服务器文件夹中引用/导入了一个文件,因此出现了问题。这条线

import { authenticateUser } from '../../../server/controllers/user';

在src文件夹中的一个组件中导致了这个。