Flatpickr 问题“初始化前无法访问‘e’”

Rah*_*ane 5 typescript ag-grid flatpickr

当我使用 ngserve 进行编译时,开发 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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

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"
]
Run Code Online (Sandbox Code Playgroud)

}

小智 2

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

var shouldBuildMonth = function (month) { ... }`
Run Code Online (Sandbox Code Playgroud)

几行之后就会引用它:

if (!shouldBuildMonth(i))
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,当它被编译为生产并缩小时,声明缩小器尝试 inline shouldBuildMonth,但失败了。

我相信这是此类问题的一个变体,解决方法似乎是禁止您的缩小器内联函数。