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

aamkag61  于 2023-04-20  发布在  Node.js
关注(0)|答案(3)|浏览(276)

我使用webpack有两个入口点:

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

我想配置它,以便当我更改jsscss文件时,它会自动再次运行webpack。
我尝试使用webpack-dev-server命令:

webpack-dev-server --hot

它看起来像是在重新构建,它输出消息
webpack:bundle现在有效。
然而,如果我尝试刷新浏览器,我看不到我的更改。(在开发工具上禁用缓存并按下Ctrl+F5)。重新启动节点也不起作用,就好像它在其他地方构建而不是在配置的输出文件上:

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

4xrmg8kj1#

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

webpack --watch

使用此选项,webpack将监视更改并重新编译。

fcipmucu

fcipmucu2#

webpack通常会自动重建。在我的情况下,它工作正常,但突然停止,解决方案是根据文档将值增加到文件/proc/sys/fs/inotify/max_user_watches中:https://webpack.js.org/configuration/watch/#not-enough-watchers
运行以下命令:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
eqzww0vc

eqzww0vc3#

我不是一个webpackMaven,但我发现webpack-dev-server不写磁盘,它通过Express示例从内存中提供结果来服务文件。
你可以通过在html文件中更改localhost:8080/webpack-dev-server/bundle.js的路径来测试这一点,如果你运行webpack-dev server,更改应该会显示出来。
正确的处理方法是使用publicPath属性更新webpack.config.js:

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

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

相关问题