NodeJSサーバで、webpackで制作したReactJSをSSRしたいです。
複数のloaderを使用してコンパイルをしているため、webpackのコンパイル環境を生かしたままサーバへあげたいです。設定を実行すると、DllPlugin.jsからエラーが発生し、解決方法が分からず躓いています。ご教授頂けますと幸いです。
javascript
1// server.js 2import React from 'react' 3import ReactDom from 'react-dom' 4import express from 'express' 5import webpackConfiguration from '../webpack.config' 6import webpackDevMiddleware from 'webpack-dev-middleware' 7import webpack from 'webpack' 8import {renderToString} from 'react-dom/server' 9import {createIsomorphicWebpack} from 'isomorphic-webpack' 10 11const app = express() 12 13const compiler = webpack(webpackConfiguration) 14createIsomorphicWebpack(webpackConfiguration) 15 16const webpackDevMiddlewareInstance = app.use(webpackDevMiddleware(compiler)) 17 18const renderFullPage = (body) => { 19 return `<!doctype html> 20 <html lang="ja"> 21 <head> 22 </head> 23 <body> 24 <div id="root"></div> 25 ${body} 26 <script src="/assets/js/bundle.js"></script> 27 </body> 28 </html>` 29} 30 31app 32 .get('*', function (req, res) { 33 const appBody = renderToString(require(`../src/index.js`).default) 34 res.setHeader('content-type', 'text/html') 35 res 36 .status(200) 37 .send(renderFullPage(appBody)) 38 }) 39 40app.listen(3000)
javascript
1 // webpack.config.js 2const path = require('path'); 3const webpack = require('webpack'); 4 5module.exports = { 6 entry: path.resolve(__dirname, 'src/index.js'), 7 output: { 8 path: path.resolve(__dirname, 'public/assets/js/'), 9 filename: 'bundle.js' 10 }, 11 module: { 12 rules: [ 13 { 14 test: /\.js$/, 15 exclude: /node_modules/, 16 loader: 'babel-loader', 17 options: { 18 presets: ["es2015", "react"] 19 } 20 }, { 21 test: /\.(css|scss)$/, 22 loaders: [ 23 'style-loader', 'css-loader?modules&localIdentName=[path]___[name]__[local]___[hash:base64:5]!sas' + 24 's-loader?modules', 25 'autoprefixer-loader' 26 ] 27 }, { 28 test: /\.(jpg|png|svg)$/, 29 loaders: 'url-loader' 30 } 31 ] 32 } 33}
shell
1$ babel-node server.js 2/Users/XXX/node_modules/webpack/lib/DllPlugin.js:22 3 throw new Error("DllPlugin: supply an Array as entry"); 4Error: DllPlugin: supply an Array as entry
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。