【发布时间】:2018-01-22 03:32:24
【问题描述】:
我是 reactjs 的新手。我刚开始学习reactjs。我在 nodejs 中使用 webpack 时遇到问题。我想创建将运行 webpack 文件的节点服务器。我有 webpack 文件:
const {resolve} = require('path');
const webpack = require('webpack');
const validate = require('webpack-validator');
const {getIfUtils, removeEmpty} = require('webpack-config-utils');
module.exports = env => {
const {ifProd, ifNotProd} = getIfUtils(env)
return validate({
entry: './index.js',
context: __dirname,
output: {
path: resolve(__dirname, './build'),
filename: 'bundle.js',
publicPath: '/build/',
pathinfo: ifNotProd(),
},
devtool: ifProd('source-map', 'eval'),
devServer: {
port: 8080,
historyApiFallback: true
},
module: {
loaders: [
{test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'},
{test: /\.css$/, loader: 'style-loader!css-loader'},
{test: /(\.eot|\.woff2|\.woff|\.ttf|\.svg)/, loader: 'file-loader'},
],
},
plugins: removeEmpty([
ifProd(new webpack.optimize.DedupePlugin()),
ifProd(new webpack.LoaderOptionsPlugin({
minimize: true,
debug: false,
quiet: true,
})),
ifProd(new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"',
},
})),
ifProd(new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
screw_ie8: true, // eslint-disable-line
warnings: false,
},
})),
])
});
};
如何在 nodejs 中使用此配置。请帮忙
【问题讨论】:
-
Webpack 是一个代码打包器,它可以在开发环境中工作。使用webpack通常的流程是将所有文件打包到本地,然后当所有文件准备好后,在服务器端不使用webpack部署到服务器。
-
你在 webpack.config.js 文件中做的太多了。如果在生产中,让你的服务器指向另一个 webpack 文件,否则让它使用 webpack.dev.config.js 文件。
app.js文件中的 github.com/christian4423/express_blog 显示了解决此问题的可靠方法。