版本
源码:
export default class MessageChain {
#debug = false;
constructor(options = {}) {
this.#debug = options.debug; // 出错代码
}
}
编译后
var ye;
class MessageChain {
constructor(r={}) {
ge(this, ye, r.debug) // 出错代码
}
}
var ce = (a,r,t)=>Le(a, typeof r != "symbol" ? r + "" : r, t)
, Ce = (a,r,t)=>r.has(a) || De("Cannot " + t);
var ie = (a,r,t)=>(Ce(a, r, "read from private field"),
错误
index-DJLqw9J7.js:264 TypeError: Cannot write to private field
at De (index-Wsimtzzt.js:1:47)
at Ce (index-Wsimtzzt.js:1:223)
at ge (index-Wsimtzzt.js:1:445)
at new MessageChain (index-Wsimtzzt.js:212:7585)
at index-Wsimtzzt.js:212:9006
问题
- 在开发环境可以正常赋值
- 如何正确赋值
- 如何让vite编译时保留class的源码
你是说编译后的代码在构建函数里也不能给私有变量赋值?那不对呀,那是 bug 了。
不然的话,贴一下你修改私有变量的代码吧。