所以我刚刚dashboard.svelte
在我的原型预订管理应用程序上推出了一个新页面(
构建良好,但是在浏览器中加载任何站点时,我在控制台中收到一个奇怪的错误,这会中断所有其他 JS 的执行。
TypeError: Kn is not a function
它与return Kn(t...
名为的文件的部分相关联map.xxx.js
:
var Kn, Xn = function (t, e) {
return function (n, r) {
if (null == n) return n;
if (!qe(n)) return t(n, r);
for (var i = n.length, o = e ? i : - 1, a = Object(n); (e ? o-- : ++o < i) && !1 !== r(a[o], o, a); );
return n
}
}(function (t, e) {
return t && Qn(t, e, Pe)
}); var tr = function (t, e) {
var n = - 1,
r = qe(t) ? Array(t.length) : [
];
return Kn(t, function (t, i, o) {
r[++n] = e(t, i, o)
}),
r
};
我花了几个小时试图找出这个错误的来源(老实说这不是很直观),并通过反复试验将其绑定回上述dashboard.svelte
文件(npm run dev
顺便说一下,它工作正常)
https://gist.github.com/Bandit/58500ebc473e7d8d84bfb6ae16d41ea6
我已经把我能找到的所有信息都放在了上面的要点中。我真的希望有人能对这个问题有所了解,因为我现在不得不回滚到更早的提交。
FWIW 我DateTime
通过 Luxon 和lodash
应用程序中其他地方的几种方法使用,没有任何问题,所以这不是第一次构建这些包。
/EDIT1 应该注意,如果我一切正常,rm src/routes/dashboard.svelte
那么npm run build
它完全被限制在那个文件中......
/EDIT2 注释掉以下行使dashboard.svelte
一切正常:
// import merge from 'lodash/merge';
// const { session } = stores();
// $session.prefs = merge({}, $session.prefs);
但这对我来说毫无意义,因为这个 EXACT 代码存在于我的应用程序的另一个页面中:
import merge from 'lodash/merge';
import { onMount } from 'svelte';
import { hideAll } from 'tippy.js';
import { numberWithOrdinal } from './_helpers.js';
import { hasRole } from 'user.js';
const { session } = stores();
$session.prefs = merge({}, $session.prefs);
那么这与导入的顺序有关吗?
/EDIT3 关于下面我对调用堆栈的评论,这是触发问题的行(它位于与服务器完全不同的文件中dashboard.svelte
并且在服务器上运行良好):
$: if (dates && availableItems && availableBookings) populateGrid();
/EDIT4 因此,经过大量调试,我们设法将其固定为lodash.sortBy
. 不知道为什么这突然成为一个问题,因为我已经在应用程序的另一个页面上使用了数周而没有问题。无论如何,我现在已经删除了它的所有痕迹,一切都很好。现在(因为我不相信那是真正的问题)......