我将 DataTables 与 Vue 和 Vite 一起使用,它使用
npm run dev
可以完美地工作,但是在构建生产环境时 npm run build
,没有使用 DT 的页面有效。它抛出一个错误:
Uncaught (in promise) TypeError: Cannot set properties of undefined (setting 'plugin-init')
编译混淆后的文件通常命名为style-
{random-identifier}
.js,但有时显示为jquery.dataTables-{random-identifier}.js
.
浏览文件本身,这个块特别是抛出错误:
b(document).on("plugin-init.dt", function(e, r) {
var a = new ae(r)
, i = "on-plugin-init"
, s = "stateSaveParams." + i
, f = "destroy. " + i;
a.on(s, function(p, v, m) {
for (var _ = v.rowIdFn, C = v.aoData, S = [], L = 0; L < C.length; L++)
C[L]._detailsShow && S.push("#" + _(C[L]._aData));
m.childRows = S
}),
a.on(f, function() {
a.off(s + " " + f)
});
var h = a.state.loaded();
h && h.childRows && a.rows(b.map(h.childRows, function(p) {
return p.replace(/:/g, "\\:")
})).every(function() {
ue(r, null, "requestChild", [this])
})
});
这是我如何使用 DT 的示例代码:
<script setup>
import DataTable from 'datatables.net-vue3'
import DataTablesLib from 'datatables.net';
defineProps({
Invoices: JSON,
});
const columns = [{data: 'id', title: 'No.'}];
</script>
<template>
<DataTable
:data="Invoices"
:columns="columns"
</DataTable>
</template>
这是
vite.config.js
代码:
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue'
import tailwindcss from 'tailwindcss';
import { nodePolyfills } from 'vite-plugin-node-polyfills'
export default defineConfig({
resolve: {
alias: {
'ziggy': '/vendor/tightenco/ziggy/src/js',
'ziggy-vue': '/vendor/tightenco/ziggy/src/js/vue',
},
},
plugins: [
vue(),
laravel([
'resources/css/app.css',
'resources/js/app.js',
]),
nodePolyfills({
// Whether to polyfill `node:` protocol imports.
protocolImports: true,
}),
],
css: {
postcss: {
plugins: [tailwindcss],
},
},
define: { global: "globalThis" }
});
我正在使用 Laragon v6.0 220916 作为服务器,vite v4.0,datatables.net v1.13.4,datatables.net-vue3 v2.0.
是否有任何可用的命令来至少跟踪此类产品构建、预混淆或导致它的原因?