因为我正在将传统的webapp转换为基于webpack的应用程序,所以它使用mCustomScrollbar。根据mCustomScrollbar的文档,要与webpack一起运行需要使用imports-loader。但文档中给出的语法与旧版本的webpack兼容,与最新版本不兼容。
根据imports-loader的doc,我无法将malihu-custom-scrollbar-plugin添加到modules-rules的test中。
{
test: /jquery-mousewheel/, /* This works fine */
use: [{
loader: "imports-loader",
options: {
imports: {
moduleName: "jquery",
name: "$"
},
wrapper: "window",
additionalCode:
"var define = false;"
}
}]
},
{
test: /malihu-custom-scrollbar-plugin/, /* Not working */
use: [{
loader: "imports-loader",
options: {
imports: {
moduleName: "jquery",
name: "$"
},
wrapper: "window",
additionalCode:
"var define = false;"
}
}]
}给出以下错误,
ERROR in ./node_modules/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css 8:6
Module parse failed: 'import' and 'export' may only appear at the top level (8:6)
File was processed with these loaders:
* ./node_modules/imports-loader/dist/cjs.js我的vendor.js如下所示:
...
import "malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css";
...
import $ from "jquery";
window.jQuery = jQuery;
window.$ = $;
...
require("jquery-mousewheel")($);
require("malihu-custom-scrollbar-plugin")($);
...那么如何使其工作,以及如何在相同的导入程序中组合两个模块-加载器,在我的例子中是jquery-mousewheel和malihu-custom-scrollbar-plugin。
发布于 2021-07-28 18:26:37
由于mCustomScrollbar的.css文件与webpack的其他加载器产生问题,因此在vendor.js中添加了内联导入加载器配置,并从webpack配置文件中删除。
现在vendor.js看起来像下面这样:
...
import "malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css";
...
import $ from "jquery";
window.jQuery = jQuery;
window.$ = $;
...
require("imports-loader?wrapper=window&!jquery-mousewheel");
require("imports-loader?wrapper=window&!malihu-custom-scrollbar-plugin");
...随着这个mCustomScrollbar开始工作,如果有更好的方法或者这是正确的方法,请告诉我。
https://stackoverflow.com/questions/68548072
复制相似问题