您的报告内容:我正在关注如何设置React hot loarder set of instructions。但是,当我进入第3步,我将修补程序放入其中时,它会突破到下面的那个。
您认为应该发生什么:应该正常工作
React Hot Loader版本:下一步
在项目文件夹中运行这些命令并填写结果:
node -v
:7.9.0 npm -v
:4.2.0 然后,指定:
https://github.com/abarcenas29/preact-sandbox-v0/blob/wip/hot-reloader/src/main.js
branch:wip-hot-reloader
说明:
yarn
yarn run postinstall
yarn run start:dev
答案 0 :(得分:10)
我没有足够的声誉发表评论,所以我必须写一个答案,这不是问题的解决方案,但仍然......
您收到的错误是由于react-hot-loader/patch
需要实际的react
模块并使用新模块修补其createElement
功能。
请在此处查看:react-hot-loader/lib/patch.dev.js:179
主要问题是webpack config react
模块已解析为preact-compat
,显然不允许设置新值,因此Hot Reload无法一起运行。
希望这能回答你的问题。因为它是 - 我认为热重装不会在该设置中工作。
修改强>
找到一个简单的解决方
将webpack.config.js
解析块更改为此,将react
指向您自己的脚本:
// resolve for preact
webpack.resolve = {
alias: {
react: path.resolve(__dirname, 'react.js')
// the rest goes as before
}
}
现在创建react.js
文件并将其放入内部(根据需要更改路径和名称):
var preact = require('preact-compat');
var react = {};
// Copy object properties to a new object which will allow react-hot-loader to do its magic
Object.keys(preact).forEach(function(key) {
react[key] = preact[key];
});
module.exports = react;
完成了! HMR现在正在工作。