Paul Derscheid
db4f151be5
This commit addresses an issue where jQuery and DataTables libraries (datatables.net and related extensions) were not functioning correctly when bundled with rspack. These libraries expect to be loaded in the global scope rather than as bundled modules, leading to initialization issues. To resolve this, jQuery and all related DataTables libraries (datatables.net, datatables.net-buttons, datatables.net-buttons/js/buttons.html5, etc.) are marked as externals in the rspack configuration. This ensures they are treated as global dependencies, preventing conflicts and allowing proper initialization. Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
const { VueLoaderPlugin } = require("vue-loader");
|
|
//const autoprefixer = require("autoprefixer");
|
|
const path = require("path");
|
|
const rspack = require("@rspack/core");
|
|
|
|
module.exports = {
|
|
experiments: {
|
|
css: true,
|
|
},
|
|
entry: {
|
|
erm: "./koha-tmpl/intranet-tmpl/prog/js/vue/modules/erm.ts",
|
|
preservation:
|
|
"./koha-tmpl/intranet-tmpl/prog/js/vue/modules/preservation.ts",
|
|
"admin/record_sources":
|
|
"./koha-tmpl/intranet-tmpl/prog/js/vue/modules/admin/record_sources.ts",
|
|
},
|
|
output: {
|
|
filename: "[name].js",
|
|
path: path.resolve(
|
|
__dirname,
|
|
"koha-tmpl/intranet-tmpl/prog/js/vue/dist/"
|
|
),
|
|
chunkFilename: "[name].js",
|
|
globalObject: "window",
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.vue$/,
|
|
loader: "vue-loader",
|
|
options: {
|
|
experimentalInlineMatchResource: true,
|
|
},
|
|
exclude: [path.resolve(__dirname, "t/cypress/")],
|
|
},
|
|
{
|
|
test: /\.ts$/,
|
|
loader: "builtin:swc-loader",
|
|
options: {
|
|
jsc: {
|
|
parser: {
|
|
syntax: "typescript",
|
|
},
|
|
},
|
|
appendTsSuffixTo: [/\.vue$/],
|
|
},
|
|
exclude: [
|
|
/node_modules/,
|
|
path.resolve(__dirname, "t/cypress/"),
|
|
],
|
|
type: "javascript/auto",
|
|
},
|
|
{
|
|
test: /\.css$/i,
|
|
type: "javascript/auto",
|
|
use: ["style-loader", "css-loader"],
|
|
},
|
|
],
|
|
},
|
|
plugins: [
|
|
new VueLoaderPlugin(),
|
|
new rspack.DefinePlugin({
|
|
__VUE_OPTIONS_API__: true,
|
|
__VUE_PROD_DEVTOOLS__: false,
|
|
}),
|
|
],
|
|
externals: {
|
|
jquery: "jQuery",
|
|
"datatables.net": "DataTable",
|
|
"datatables.net-buttons": "DataTable",
|
|
"datatables.net-buttons/js/buttons.html5": "DataTable",
|
|
"datatables.net-buttons/js/buttons.print": "DataTable",
|
|
"datatables.net-buttons/js/buttons.colVis": "DataTable",
|
|
},
|
|
};
|