有关webpack的一个小问题

最近一直再学着使用webpack,也尝试把自己的项目与webpack结合。
看了很多教程,终于可以成功构建了。
后来尝试进一步配置webpack-dev-server,最终也可以hot deploy module了。
不过最终还是有一点小问题不是很明白,是关于webpack-dev-middleware的,这个middleware到底有什么用?意思是如果在我当前的express项目中使用这个middleware的话,就不用启动额外的webpack server吗?
假如express启动的端口是8081,webpack-dev-server的默认端口是8080,那么我在项目中使用middleware后,原先的localhost:8080/{publicPath}/{module}.js意思转变成localhost:8081/{publicPath}/{module}.js?
我刚试了试,是404啊,那这个中间件到底怎么用呢?

webpack.config.js的output部分

output: {
        libraryTarget: 'var',
        filename: '[name].build.js',
        chunkFilename: '[chunkhash:8].[name].chunk.js',
        publicPath: '/public/assets/',
        path: path.join(__dirname, '/public/assets')

    },

express的中间件部分

var app = express();
var webpackDevMiddleware = require('webpack-dev-middleware');
var webpack = require('webpack');
var webpackConf = require('./webpack.config');

app.use(webpackDevMiddleware(webpack(webpackConf),
    {
        contentBase: webpackConf.output.path,
        //http://localhost:8081/public/assets
        publicPath: webpackConf.output.publicPath,
        hot: true,
        stats: {
            colors: true
        }
    }
))
阅读 3.9k
1 个回答

解决了,路径冲突了,优先加载local resource了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题