如何更改文件后重新编译webpack?

我使用两个入口点的webpack:

entry: { js: './assets/index.js', css: './assets/sass/all.scss' }, 

我想configuration它,所以当我更改jsscss文件时,它会自动再次运行webpack。


我尝试使用webpack-dev-server命令使用webpack-dev-server

 webpack-dev-server --hot 

它看起来像是再次build立,它输出的消息

webpack:bundle现在是有效的。

但是,如果我尝试刷新浏览器,我看不到我的更改。 (在开发工具上禁用高速caching并按下Ctrl + F5)。 重新启动节点也不起作用,就好像它已经构build在别的地方,而不是在configuration的输出文件上:

 output: { path: path.join(__dirname, '/public'), filename: 'bundle.js' 

},

如果你想让webpack监视更改,只需使用watch标志:

 webpack --watch 

有了这个选项,webpack将会监视变化并重新编译。

我不是一个webpack专家,但我发现webpack-dev-server不写入磁盘。 它通过它用来提供文件的Express实例从内存中提供结果。

你可以通过在你的html文件中改变path到localhost:8080 / webpack-dev-server / bundle.js来testing,如果你运行webpack-dev服务器,那么应​​该显示更改。

处理它的正确方法是用publicPath属性更新你的webpack.config.js:

 output: { path: path.join(__dirname, '/public'), filename: 'bundle.js', publicPath: "/public/" } 

在这种情况下,脚本标签应该引用src =“public / bundle.js”。

更多信息

您可以检出webpack文档( https://webpack.github.io/docs/tutorials/getting-started/#watch-mode )以了解webpack的手表模式。