WebアプリケーションをASP.NETおよびjQueryからExpressおよびReactを使用してNode.jsに移行しています。我々は典型的なマルチページアプリケーション(MVC)を使用しており、我々はこのアーキテクチャに慣れていて、いくつかの特殊なケース(基本的にはSEO)で必要としています。Webpack 2とMultipage Express Webアプリケーション
React Routerを使用せずにルートを維持したい場合は、Express MVC Routerを使用しますが、ReactでWebPack 2を使用します。
最初のステップでは、BackEndを移行していました(ほとんど完了しています).2番目のパートは、フロントエンドをjQueryからReactに移行します(はい、UIライブラリのように反応します。私たちのページはあまり複雑ではなく、コンポーネントを再利用したいからです)。
WebPack 2のコード分割を使用して各ページ(jsファイル)ごとに複数のエントリを生成する必要があるMVC Expressルートを使用しているように、ライブリロード、プロダクションビルドjs
Entryライブラリ、ベンダー、一般的なWebPackを作成する例が1つありますが、server.js(Expressアプリケーション)との統合方法はわかりません。 ..
例のWebPACKの設定:
var path = require('path')
var webpack = require('webpack')
var config = {
entry: {
vendors: ['react', 'lodash'],
common: ['lodash'],
home: path.resolve(__dirname, './src/main'),
page1: path.resolve(__dirname, './src/page1'),
page2: path.resolve(__dirname, './src/page2'),
},
output: {
path: path.join(__dirname, 'js'),
filename: '[name].bundle.js',
chunkFilename: '[id].chunk.js'
},
devtool: 'source-map',
devServer: {
inline: true,
contentBase: './src',
port: 3000
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel'
}
]
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(true),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin({
output: {
comments: false
},
compress: {
warnings: false,
screw_ie8: true
}
}),
new webpack.optimize.CommonsChunkPlugin({
names: ["common", "vendors"],
minChunks: Infinity
})
]
}
if (process.env.NODE_ENV === 'production') {
config.output.path = path.join(__dirname, 'dist/')
/*
Note: by default, React will be in development mode
see https://facebook.github.io/react/downloads.html
*/
config.plugins.push(new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': '"production"'
}
}))
}
module.exports = config
私の質問は... Expressとライブリロードでこれを動作させることはできますか? create-react-appと同じように? MultipageアプリケーションとWebPackを一緒に使用する方法を説明するリンクやチュートリアル
ありがとうございます!
これは完璧な解決策でしょうか? https://github.com/icflorescu/quickstart-express-react ... – chemitaxis
webpackのプロキシ設定を使用して、apiサーバーでプロキシすることができます。http://nikolay.rocks/2016-01-13-connectを参照してください。 -webpack-to-backend – redconservatory