【问题标题】:Flatpickr issue "Cannot access 'e' before initialization"Flatpickr 问题“初始化前无法访问‘e’”
【发布时间】:2021-06-07 15:21:57
【问题描述】:

当我在开发时使用 ng serve 进行编译,Flatpickr 工作正常,但是当编译整个应用程序以将其部署在服务器上时,它会在控制台中出现以下错误

ReferenceError: Cannot access 'e' before initialization
at _ (main.84c9c5060af8f99f5713.bundle.js:formatted:95600)
at O (main.84c9c5060af8f99f5713.bundle.js:formatted:95625)
at w (main.84c9c5060af8f99f5713.bundle.js:formatted:95652)
at main.84c9c5060af8f99f5713.bundle.js:formatted:96326
at main.84c9c5060af8f99f5713.bundle.js:formatted:96441
at nC (main.84c9c5060af8f99f5713.bundle.js:formatted:96513)
at oC (main.84c9c5060af8f99f5713.bundle.js:formatted:96526)
at iC (main.84c9c5060af8f99f5713.bundle.js:formatted:96543)
at t.ngAfterViewInit (main.84c9c5060af8f99f5713.bundle.js:formatted:96580)
at Er (main.84c9c5060af8f99f5713.bundle.js:formatted:37872)

我用来初始化 Flatpickr 的代码如下:-

 this.picker = flatpickr(this.flatpickrEl.nativeElement, {
        onChange: this.onDateChanged.bind(this),
        wrap: true,
        enableTime: true,
        dateFormat: "Y-m-d H:i"
    });

和 tsconfig.json 配置是:-

"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": false,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
  "node_modules/@types"
],
"lib": [
  "es2017",
  "dom"
]

}

【问题讨论】:

  • 我遇到了同样的问题——通过将 flatpickr 设置为 4.6.7 版本解决了这个问题。对我来说,这个错误是从 4.​​6.8 开始发生的。
  • 谢谢,@TheodrosZelleke 这救了我的命
  • 谢谢@tzelleke,你的建议对我有用...

标签: typescript ag-grid flatpickr


【解决方案1】:

我似乎遇到了和你一样的问题(使用 Flatpickr 和 Webpack)。据我所知,问题的出现是因为函数buildMonthSwitch 中有一个嵌入函数:

var shouldBuildMonth = function (month) { ... }`

这会在几行之后被引用:

if (!shouldBuildMonth(i))

无论出于何种原因,当它被编译到生产环境并被缩小时,声明缩小器正在尝试内联 shouldBuildMonth,但失败了。

我相信这是this sort of issue 的变体,解决方法似乎是禁止您的缩小器内联函数。

【讨论】:

  • 很好的答案。今天遇到了这个问题,这为我解决了。
猜你喜欢
  • 2020-08-25
  • 2020-09-08
  • 2021-09-29
  • 2019-10-12
  • 2020-11-30
  • 2021-11-02
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多