-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
@tarojs/runtime 热更新时报错 #10722
Comments
提供一下 demo |
demo需要哪些信息?我还没有个人的appid,公司项目不好泄露。。。
…------------------ 原始邮件 ------------------
发件人: "NervJS/taro" ***@***.***>;
发送时间: 2021年11月23日(星期二) 晚上7:10
***@***.***>;
***@***.******@***.***>;
主题: Re: [NervJS/taro] @tarojs/runtime 热更新时报错 (Issue #10722)
提供一下 demo
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
|
@Chen-jj |
同遇到 |
+1 |
同遇到热更新不起作用,代码变动就报 Cannot set property '$taroTimestamp' of undefined,要手动编译,请问解决了吗? |
@rquanx JS 热重载失败是因为 Webpack 对 modules 有缓存: // dist/runtime.js (webpack runtime.js)
function __webpack_require__(moduleId) {
// Check if module is in cache
if(installedModules[moduleId]) {
return installedModules[moduleId].exports;
}
// ......
} 可惜微信小程序没有暴露热更新的监听方法,否则可以统一处理 Webpack 缓存。 目前,开发者如果需要使用 JS 的热更新,可以在页面文件最后加上以下代码: // 清除 Webpack 相关缓存
if (process.env.NODE_ENV !== 'production') {
const cache = __webpack_require__.c
Object.keys(cache).forEach(item => {
// 假设当前页面的路径是 pages/index/index
if (item.indexOf('pages/index/index') !== -1) delete cache[item]
})
} Taro 后续会考虑增加一个配置,为开发者自动加上上述代码以兼容微信小程序的热更新。 最后,JS 只有 Page 页面文件修改后才会触发热更新,依赖的组件修改后则不会触发热更新。(使用原生代码也测试过,应该是微信小程序的热更新还不支持监听页面依赖的文件) |
react 下遇到了同样问题 ,暂时手动改了这个文件
function createPageConfig(component, pageName, data, pageConfig) {
// ... 省略部分代码
const config = {
// onLoad(options, cb) {
// 上面一句代码改成下面这句
onLoad(options={}, cb) { |
Taro v3.4 会加入 |
感谢,现在要如何使用带了这个功能的 v3.4 ?看npm的beta版本还是老的 |
@wong2 v3.4 下个版本可能在下周发,目前就先手动在页面底部加上我上面提到的 Webpack 缓存清理代码咯 |
1 similar comment
@wong2 v3.4 下个版本可能在下周发,目前就先手动在页面底部加上我上面提到的 Webpack 缓存清理代码咯 |
ok |
这个问题,3.6.11,使用nutui, compiler: { |
3.6.17依旧不能热重载 |
我用的3.6.20也不能热重载 |
@Chen-jj 热重载的问题还是存在 |
still not work |
isn't work in 3.6.21 |
开发几年了,好像就没有用过热更新,都是全量刷新页面。这个问题只是个别人有吗? |
相关平台
微信小程序
小程序基础库: 2.19.2
使用框架: React
复现步骤
开发编辑代码时,热重载报错,Cannot set property '$taroTimestamp' of undefined
at Ui.onLoad (.._src_dsl_common.ts:106),导致热更新不能成功
期望结果
预期可以直接在开发者工具中运行最新代码
实际结果
报错导致热重载失败,必须得手动编译一遍
环境信息
The text was updated successfully, but these errors were encountered: