Javascript 为什么`从'dataTables.net'导入数据表'会在某些机器上工作,而在其他机器上却不工作?
我们有一个文件Vue 1.x组件,它是数据表的包装器。它的基本原理如下所示:Javascript 为什么`从'dataTables.net'导入数据表'会在某些机器上工作,而在其他机器上却不工作?,javascript,jquery,vue.js,datatables,Javascript,Jquery,Vue.js,Datatables,我们有一个文件Vue 1.x组件,它是数据表的包装器。它的基本原理如下所示: <template> ... </template> <script> import Vue from 'vue'; import $ from 'jquery'; import dataTables from 'datatables.net'; import dataTablesSelect from 'datatables.net-select'; import dataTab
<template>
...
</template>
<script>
import Vue from 'vue';
import $ from 'jquery';
import dataTables from 'datatables.net';
import dataTablesSelect from 'datatables.net-select';
import dataTablesColReorder from 'datatables.net-colreorder';
import dataTablesScroller from 'datatables.net-scroller';
const Table = Vue.extend({
...
created() {
$.fn.dataTable.ext.errMode = 'throw';
...
this.dataTable = this.$table.DataTable(this.options);
},
});
</script>
该组件是通过我们的网页配置编译的
这一切都很好。最近,我们一直在将代码库移植到VUE2.x。在我和我同事的机器上,移植组件工作得很好。但是,一旦使用相同的命令在构建服务器上构建了它,它就会在页面加载时抛出此错误:
TypeError:无法读取未定义的属性“ext”
参考上面的行:
$.fn.dataTable.ext.errMode='throw'
这样看来,在构建服务器上构建数据表时,实际上并没有正确导入数据表。我可以确认是实际生成的app.js导致了问题,因为下载并在本地运行它会产生相同的错误。我已经尝试了我能想到的一切来匹配环境,包括确保node/npm版本相同以及rm-rfing node_模块。然而,我们仍然一再得到同样的结果
我不知道还有什么地方可以调试,因为我不太熟悉网页构建的机制。什么可能会导致这似乎只在某些机器上工作?该错误意味着没有$.fn.dataTable对象 发布你的网页组合文件以及你如何使用jQuery。我怀疑这里存在外部/多个jQuery冲突,即导入一个jQuery,而DataTable在另一个jQuery上初始化。看看这是否有效 //在导入的正下方,初始化导入的所有内容 //这将确保在导入的jQuery上初始化fn.dataTable //在本例中,它是$reference dataTableswindow,$; dataTablesSelectwindow,$; dataTablesColReorderwindow,$; dataTablesScrollerwindow,$; 无耻的插头,看看我的包装纸在这里-它可能会帮助你更容易。即使使用我的包装器,您也必须知道在哪个jQuery上初始化它