首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在新的导入加载程序版本上使用带有webpack错误的jQuery数据表

在新的导入加载程序版本上使用带有webpack错误的jQuery数据表
EN

Stack Overflow用户
提问于 2022-03-21 10:25:01
回答 1查看 244关注 0票数 1

我在webpack安装中使用了最新的datatables.net-bs版本(1.11.5版本)。

为了使其工作,我必须在我的webpack.config.js中设置以下配置

代码语言:javascript
复制
{
    test: /datatables\.net.*/,
    use: 'imports-loader?define=>false'
}

我正在使用imports-loader==0.8.0。不幸的是,这个版本已经4年了,我想升级到最新版本(v3.1.1)。

当我这样做时,我会得到一个关于更改API的错误:

ValidationError:无效选项对象。Imports Loader已使用与API架构不匹配的options对象初始化。

当我从webpack-config中删除配置部分时,我会得到以下错误:

Uncaught :无法访问属性"$",这是未定义的

我试图像这样使用新的imports-loader设置:

代码语言:javascript
复制
use: [
      {
       loader: "imports-loader",
       options: {
           imports: ["default jquery $"]
       }
  }
]

不幸的是,这并不能解决我的问题。

我的问题是:有谁知道如何配置imports-loader ,这样我就可以在不破坏数据的情况下使用最新版本了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-26 08:14:15

我也和DataTables和Webpack做过很多斗争。

关于您的错误:加载器的配置语法已更改。

下面是对我有用的东西:

webpack.config.js

代码语言:javascript
复制
{
    module: {
        rules: [
            {
                test: /datatables\.net.*.js$/,
                use: [{
                    loader: 'imports-loader',
                    options: {
                        additionalCode: 'var define = false; /* Disable AMD for misbehaving libraries */'
                    }
                }]
            }
        ],
    },
}

在您的JS文件中:

代码语言:javascript
复制
require('datatables.net')(window, $);
require('datatables.net-responsive')(window, $);  // if you added this plugin

它所做的是在所有datatables文件的基础上编写var define = false;,这实际上禁用了可数据的AMD模式(这破坏了webpack)。重要的是将此加载程序仅限于JS文件,否则它也会将其放入datatable CSS文件中,这将导致语法错误。

如果您正在使用symfony + webpack encore,您可以这样添加它:

代码语言:javascript
复制
Encore
    .addLoader({
        test: /datatables\.net.*.js$/,
        use: [{
            loader: 'imports-loader',
            options: {
                additionalCode: 'var define = false; /* Disable AMD for misbehaving libraries */'
            }
        }]
    })
;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71556031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档