在webpack中包含jQuery数据表。在webpack上提供ProvidePlugin

时间:2018-11-12 01:56:48

标签: javascript jquery webpack datatables

我目前正在我创建的每个JavaScript文件上导入jQuery数据表。

import 'datatables.net/js/jquery.dataTables';
import 'datatables.net-bs4/js/dataTables.bootstrap4';

$('#example').DataTable();

是否可以使它成为全局性的,而不必每次都导入它? jQuery具有这种行为,我可以在每个JavaScript上访问$而不导入它。

在我的 environment.js 中,我目前有这个:

const {environment} = require('@rails/webpacker');

const webpack = require('webpack');
environment.plugins.append('Provide', new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
  Popper: ['popper.js', 'default']
}));

module.exports = environment;

我相信这是在全球范围内加载软件包的文件。可以在此处包含数据表吗?

到目前为止,我已经尝试过:

environment.plugins.append('Provide', new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
  Popper: ['popper.js', 'default'],
  DataTable: 'datatables.net'
}));

这:

environment.plugins.append('Provide', new webpack.ProvidePlugin({
  $: 'jquery',
  jQuery: 'jquery',
  Popper: ['popper.js', 'default'],
  DataTable: 'datatables.net/js/jquery.dataTables'
}));

但是没有运气。您知道可能是什么问题吗?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,在此链接https://datatables.net/forums/discussion/32542/datatables-and-webpack上发现了一些有用的东西,可能您应使用dt代替DataTable