即使在显示捆绑包有效消息之后,Webpack-dev-server也不捆绑

我已经用webpack设置了一个基本的反应应用程序,但是我无法使webpack-dev-server正常运行。

我已经全局安装了webpack-dev-server ,并试图运行命令sudo webpack-dev-server --hot因为需要热重载。

该项目似乎只与webpack cmd工作正常。 它构build到我的生成文件夹,我可以通过一些服务器,但它不会与webpack-dev-server 。 从terminal清楚,构build过程已经完成,没有错误被抛出[ webpack: bundle is now VALID. ]它实际上正确地观察,因为任何改变它会触发构build过程,但它并没有真正build立[它不服务我的bundle.js]。 我试图改变整个configuration,仍然无法解决问题。

如果有人能帮忙,我们将非常感激。

以下是我的webpack.config.js文件。

 var path = require('path'); module.exports = { devtool: '#inline-source-map"', watch: true, colors: true, progress: true, module: { loaders: [{ loader: "babel", include: [ path.resolve(__dirname, "src"), ], test: /\.jsx?$/, query: { plugins: ['transform-runtime'], presets: ['es2015', 'react', 'stage-0'], } }, { loader: 'style!css!sass', include: path.join(__dirname, 'src'), test: /\.scss$/ }] }, plugins: [], output: { path: path.join(__dirname, 'build/js'), publicPath: '/build/', filename: '[name].js' }, entry: { bundle: [ './src/index.js' ] }, devServer: { contentBase: "./", inline: true, port: 8080 }, }; 

我自己解决了这个问题。 这听起来很愚蠢,但问题是在output对象下的publicPath 。 它应该匹配path属性,而不是只是/build/ ,即,

 output: { path: path.join(__dirname, 'build/js'), publicPath: '/build/js', // instead of publicPath: '/build/' filename: '[name].js' }, 

在我的情况下,我不得不检查webpack服务的文件。

你可以看到它: http://localhost:8080/webpack-dev-server

然后我可以看到我的bundle.jspath> http:// localhost:8080 / dist / bundle.js

之后,我在index.html中使用了/dist/bundle.js <script src="/dist/bundle.js"></script>

现在它刷新任何文件更改。

webpack-dev-server从内存中为你的bundle.js提供服务。 运行时不会生成文件。 所以在这种情况下,bundle.js不作为文件存在。

如果您不想使用bundle.js,例如优化其大小或testing您的生产部署,请使用webpack命令通过webpack生成它,并以生产模式提供。