我按照本教程创建了Spring-boot + ReactJs应用程序:https://spring.io/guides/tutorials/react-and-spring-data-rest/
应用程序以./mvnw spring-boot: run
正常运行,并且我有一个NPM脚本"watch": "webpack --watch -d"
,该脚本运行以下配置
var path = require('path');
module.exports = {
entry: './src/main/js/app.js',
devtool: 'sourcemaps',
cache: true,
mode: 'development',
output: {
path: __dirname,
filename: './src/main/resources/static/built/bundle.js'
},
module: {
rules: [
{
test: path.join(__dirname, '.'),
exclude: /(node_modules)/,
use: [{
loader: 'babel-loader',
options: {
presets: ["@babel/preset-env", "@babel/preset-react"]
}
}]
}
]
}
};
app.js
已按预期编译到bundle.js
中,但是如果刷新页面时我不使用./mvnw spring-boot:run
重新启动服务器,则看不到更改。
我可能会丢失一些东西,也许是Spring-boot不在使用我的bundle.js
文件,而是某种形式的副本吗?
答案 0 :(得分:0)
我可以猜测嵌入式tomcat不会热重载静态文件。您可以尝试其中一些Refreshing static content with Spring MVC and Boot
但是也将分享我的解决方案,该解决方案是使用webpack-dev-server进行热加载和Web开发。
const path = require('path');
...
devServer: {
contentBase: path.join(__dirname, 'src'),
publicPath: '/build',
port: 8000,
proxy: {
"**": "http://localhost:8080"
}
},
,然后运行webpack-dev-server
命令来运行它。它会即时编译您的应用程序,您的更改会立即反映出来,绝对可以尝试一下。