mirror of
https://github.com/strapi/strapi.git
synced 2025-07-16 05:22:05 +00:00
58 lines
1.6 KiB
JavaScript
Executable File
58 lines
1.6 KiB
JavaScript
Executable File
/* eslint-disable global-require */
|
|
const path = require('path');
|
|
const pkg = require(path.resolve(process.cwd(), 'package.json'));
|
|
|
|
// Dev middleware
|
|
const addDevMiddlewares = (app, webpackConfig) => {
|
|
const webpack = require('webpack');
|
|
const webpackDevMiddleware = require('webpack-dev-middleware');
|
|
const webpackHotMiddleware = require('webpack-hot-middleware');
|
|
const compiler = webpack(webpackConfig);
|
|
const middleware = webpackDevMiddleware(compiler, {
|
|
noInfo: true,
|
|
publicPath: webpackConfig.output.publicPath,
|
|
silent: true,
|
|
stats: 'errors-only',
|
|
headers: {
|
|
'Access-Control-Allow-Origin': '*',
|
|
'X-Forwarded-Host': 'strapi',
|
|
},
|
|
});
|
|
|
|
app.use(middleware);
|
|
app.use(webpackHotMiddleware(compiler));
|
|
|
|
// Since webpackDevMiddleware uses memory-fs internally to store build
|
|
// artifacts, we use it instead
|
|
const fs = middleware.fileSystem;
|
|
|
|
if (pkg.dllPlugin) {
|
|
app.get(/\.dll\.js$/, (req, res) => {
|
|
const filename = req.path.replace(/^\//, '');
|
|
res.sendFile(path.join(process.cwd(), pkg.dllPlugin.path, filename));
|
|
});
|
|
}
|
|
|
|
app.get('*', (req, res) => {
|
|
fs.readFile(path.join(compiler.outputPath, 'index.html'), (err, file) => {
|
|
if (err) {
|
|
res.sendStatus(404);
|
|
} else {
|
|
res.send(file.toString());
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Front-end middleware
|
|
*/
|
|
module.exports = (app) => {
|
|
const webpackConfig = require('../../internals/webpack/webpack.dev.babel');
|
|
|
|
// const webpackConfig = require(path.resolve(process.cwd(), 'node_modules', 'strapi-helper-plugin', 'internals', 'webpack', 'webpack.dev.babel'));
|
|
addDevMiddlewares(app, webpackConfig);
|
|
|
|
return app;
|
|
};
|