【发布时间】:2018-04-02 19:25:19
【问题描述】:
我很难使用 Laravel Mix 和 DataTables。我遇到的问题是,当我编译我的 .js 文件等时,每次我访问将执行 jQuery 数据表的页面时,都会引发以下错误:
错误是:
jQuery.Deferred exception: $(...).DataTable is not a function TypeError: $(...).DataTable is not a function
Uncaught TypeError: $(...).DataTable is not a function
据我了解,$(...).DataTable 不是全局变量,但我如何确保它可以“在全局范围内”/在我的应用程序中访问?
以下是我的设置:
app.js
import jquery from 'jquery/dist/jquery.slim'
import 'bootstrap-sass'
import 'datatables.net';
import dt from 'datatables.net-bs';
window.$ = window.jQuery = jquery;
webpack.mix.js
mix
.js('resources/assets/admin/js/app.js', 'js/')
.extract([
'jquery', 'bootstrap-sass', 'datatables.net', 'datatables.net-bs'
])
.autoload({
jquery: ['$', 'window.jQuery', 'jQuery', 'jquery'],
DataTable : 'datatables.net-bs'
})
任何想法都将受到高度赞赏。
【问题讨论】:
-
检查datatables.net-bs npm page。
var $ = require( 'jquery' ); require( 'datatables.net-bs' )( window, $ ) -
同样适用于 datatables.net。来自npm page
var $ = require( 'jquery' ); require( 'datatables.net' )( window, $ ); -
我之前尝试过,但它导致了这个问题:未捕获的 ReferenceError:$ 未定义。没有办法导入吗?
-
更新答案,
import $ from 'jquery'; -
或者,在你的情况下,
import $ from 'jquery-slim'。我错过了那个苗条的版本
标签: javascript jquery laravel datatable laravel-mix