mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 09:56:44 +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;
 | |
| };
 | 
