我正在构建一个应用程序,前端有反应,后端有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/]
}
但无济于事。我真的很困惑我如何才能最好地配置它。我的发展突然停止了。请帮助任何帮助。
答案 0 :(得分:0)
事实证明,一位同事错误地从服务器文件夹中引用/导入了一个文件,因此出现了问题。这条线
import { authenticateUser } from '../../../server/controllers/user';
在src文件夹中的一个组件中导致了这个。