打字稿和 HMR 不工作
Typescript and HMR not working
我有使用 Typescript、ReactJS 和 Webpack 构建的前端应用程序。
我正在尝试启用 HMR。
这些是启动脚本
"build": "NODE_ENV=production $(npm bin)/webpack --watch",
"dev": "$(npm bin)/nodemon --exec \"$(npm bin)/ts-node\" ./server/server.ts || npm run build",
这是我的 ts-loader
{ test: /\.tsx?$/, loader: 'awesome-typescript-loader' }
还有我的开发服务器配置
if (NODE_ENV === 'development') {
let webpack = require('webpack')
const webpackConfig = require('../webpack.config')
const compiler = webpack(webpackConfig)
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true, publicPath: webpackConfig.output.publicPath
}))
app.use(require('webpack-hot-middleware')(compiler))
}
我无法克服错误
[HMR] The following modules couldn't be hot updated: (Full reload needed)
This is usually because the modules which have changed (and their parents) do not know how to hot reload themselves. See http://webpack.github.io/docs/hot-module-replacement-with-webpack.html for more details.
有同样的问题,并通过添加 react-hot-loader
修复它,可以使用 npm install --save-dev react-hot-loader
.
安装
你的配置应该是这样的:
{ test: /\.tsx?$/, loaders:['react-hot', 'awesome-typescript-loader'] }
我有使用 Typescript、ReactJS 和 Webpack 构建的前端应用程序。
我正在尝试启用 HMR。
这些是启动脚本
"build": "NODE_ENV=production $(npm bin)/webpack --watch",
"dev": "$(npm bin)/nodemon --exec \"$(npm bin)/ts-node\" ./server/server.ts || npm run build",
这是我的 ts-loader
{ test: /\.tsx?$/, loader: 'awesome-typescript-loader' }
还有我的开发服务器配置
if (NODE_ENV === 'development') {
let webpack = require('webpack')
const webpackConfig = require('../webpack.config')
const compiler = webpack(webpackConfig)
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true, publicPath: webpackConfig.output.publicPath
}))
app.use(require('webpack-hot-middleware')(compiler))
}
我无法克服错误
[HMR] The following modules couldn't be hot updated: (Full reload needed)
This is usually because the modules which have changed (and their parents) do not know how to hot reload themselves. See http://webpack.github.io/docs/hot-module-replacement-with-webpack.html for more details.
有同样的问题,并通过添加 react-hot-loader
修复它,可以使用 npm install --save-dev react-hot-loader
.
你的配置应该是这样的:
{ test: /\.tsx?$/, loaders:['react-hot', 'awesome-typescript-loader'] }