运行 yarn add imports-loader
我使用的是bootstrap4数据表,如果您使用的是bootstrap3或其他CSS框架,请按照此链接中的安装步骤进行安装:
https://datatables.net/download/
在我的config/webpack/loaders/datatable.js
文件中
module.exports = {
test: /datatables\.net.*/,
use: [{
loader: 'imports-loader?define=>false'
}]
}
在我的
config/webpack/environment.js
文件中。
const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
const coffee = require('./loaders/coffee')
const datatable = require('./loaders/datatable')
environment.plugins.append('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
Popper: ['popper.js', 'default']
}))
environment.loaders.append('expose', {
test: require.resolve('jquery'),
use: [{
loader: 'expose-loader',
options: '$'
}]
})
environment.loaders.prepend('coffee', coffee)
environment.loaders.prepend('coffee', datatable)
module.exports = environment
在我的app/javascript/packs/dashboard.js
中
require( 'jszip' );
require("datatables.net-bs4")(window, $);
require("datatables.net-responsive-bs4")(window, $);
require("datatables.net-buttons-bs4")(window, $);
require("datatables.net-select-bs4")(window, $);
require("datatables.net-bs4/css/dataTables.bootstrap4.css");
require("datatables.net-responsive-bs4/css/responsive.bootstrap4.css");
require("datatables.net-buttons-bs4/css/buttons.bootstrap4.min.css");
require("datatables.net-select-bs4/css/select.bootstrap4.css");
随意在app/javascript/packs
中的任何.js
文件中使用import './datatable'
environment.js
是正确的。哪一行代码导致了ReferenceError
?“全选”按钮的代码在哪里,它是如何被引入到application.js
包中的? - Lyzard Kyngapp/views/layouts/application.html.erb
中将javascript_include_tag
更改为javascript_pack_tag
了吗?我重复了你的代码,没有看到任何错误,并且复选框按预期被选中。 - Lyzard Kyng<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
。 - Maayan Naveh