导入酶后加载模块 DomUtils 时出现 Webpack 错误

2024-01-07

我有一个使用 TypeScript 和 React 0.14 的项目。

我用 karma/mocha/chai 设置了测试环境。以及它的工作。但是当我导入并使用酶中的函数时,我在浏览器中收到错误(来自 Chrome 的人类可读错误):

Uncaught TypeError: ext[key].bind is not a function

据我了解,模块 227...232(内部 DomUtils 文件)在使用前未加载。

也许我忘记了什么?或者有人知道解决方法吗?

抱歉,配置太大:

网页包配置:

var webpack = require("webpack"),
    path = require("path"),
    ExtractTextPlugin = require("extract-text-webpack-plugin"),
    precss = require('precss'),
    autoprefixer = require('autoprefixer');

module.exports = {
    entry: [
        path.resolve(__dirname, "app/app.tsx")
    ],
    output: {
        filename: "bundle.js",
        publicPath: "/build/",
        path: path.resolve(__dirname, "build")
    },
    module: {
        loaders: [
            {test: /\.json$/, loader: 'json'},
            {test: /\.tsx$/, exclude: /node_modules/, loader: 'es3ify!ts'},
            {test: /\.s?css$/, loader: ExtractTextPlugin.extract('style', 'css!postcss')},
            {test: /\.svg|eot|ttf|woff|woff2|ico|png|gif|jpg($|\?)/, loader: 'file'}
        ]
    },
    postcss: function () {
        return [precss, autoprefixer];
    },
    resolve: {
        root: path.resolve(__dirname, "app"),
        extensions: ["", ".js", ".ts", ".tsx", ".json"]
    },
    plugins: [
        new ExtractTextPlugin("bundle.css")
    ]
};

业力配置:

var webpack = require('webpack');
var webpackConfig = require('./webpack.config');

module.exports = function(config) {
  config.set({
    basePath: '',
    frameworks: ['mocha', 'chai', 'sinon'],
    files: [
      'app/**/*-test.tsx'
    ],
    exclude: [],
    preprocessors: {
      'app/**/*.tsx': ['webpack']
    },
    webpack: {
      resolve: webpackConfig.resolve,
      module: webpackConfig.module,
      externals: {
        'cheereo': 'window',
        'react/addons': true,
        'react/lib/ExecutionEnvironment': true,
        'react/lib/ReactContext': true
      }
    },
    reporters: ['progress', 'spec'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: false,
    browsers: ['PhantomJS'],
    singleRun: true,
    concurrency: Infinity
  })
}

测试文件:

import * as React from 'react';
import { shallow } from 'enzyme';

describe('Dashboard', () => {
  it('should be OK', () => {
    const instance = shallow(<div />);
    expect(true).to.equal(true, 'true === true');
  });
});

Webpack导入链:enzyme -> ... -> Cheerio -> ... -> DomUtils

StackOverflow是我解决问题的最后机会,Google不知道答案。


我遇到了同样的问题,对我来说这有帮助domutils作为 webpack 配置中的外部。根据您的配置尝试以下操作:

webpack: {
    resolve: webpackConfig.resolve,
    module: webpackConfig.module,
    externals: {
      'domutils': 'true',
      'cheereo': 'window',
      'react/addons': true,
      'react/lib/ExecutionEnvironment': true,
      'react/lib/ReactContext': true
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入酶后加载模块 DomUtils 时出现 Webpack 错误 的相关文章

随机推荐

  • 辛积分器帮助

    我正在尝试开发物理模拟 并且想要实现四阶辛积分 http en wikipedia org wiki Symplectic integration方法 问题是我的数学一定是错误的 因为使用辛积分器时我的模拟根本不起作用 与模拟效果相当好的四
  • 如何在 Scala 中使用 Typesafe Slick 创建自定义列类型?

    我有一个 PostgreSQL 表 其中包含enum 其创建者 CREATE TYPE file status AS ENUM new uploading queued processing done failed 和一个相关的字段 CRE
  • Android应用程序网络错误无法连接

    我正在使用以下编码在我的本地连接SQL数据库 String driver net sourceforge jtds jdbc Driver Class forName driver newInstance String connString
  • MVC ICollection ValidationState 始终设置为 Skipped

    作为一个ASP NET Core MVC 1 0项目 我有一个 ViewModelICollection lt gt 财产 我需要验证该集合是否包含一项或多项 我的自定义验证属性没有被执行 在我的实例中 它包含来自multipart for
  • GetPrivateProfileString - 缓冲区长度

    Windows 的 GetPrivateProfileXXX 函数 用于处理 INI 文件 在处理缓冲区长度方面有一些奇怪的规则 GetPrivateProfileString 的文档指出 如果 提供的目标缓冲区太小而无法容纳请求的字符串
  • 分页库 - 网络 + 数据库的边界回调,API 获取页面和大小

    简短的问题 从架构组件处理分页库上的数据库 网络的正确方法是什么 使用使用页面 大小加载新页面的API以及BoundaryCallback class 研究与解释 目前班级BoundaryCallback https developer a
  • 即使文件存在,Laravel 文件上传也需要验证触发

    我有一个表单 一个字段用于名为的文件attachment 在我的请求中 该字段的验证要求当另一个字段名为requestType设置为值sick通过使用required if验证规则 我面临的问题是 即使我为相关输入字段上传文件 请求类中的验
  • 获取数字的最后一位数字

    我需要定义一个数字的最后一位数字并将其分配给值 之后 返回最后一位数字 我的代码片段无法正常工作 Code public int lastDigit int number String temp Integer toString numbe
  • 在数字之间添加空格

    我正在尝试输入数字 我已经让我的文本框仅通过以下代码接受数字 function isNumber evt evt evt evt window event var charCode evt which evt which evt keyCo
  • Realm Swift 0.92.3“运行脚本阶段”不起作用

    尝试使用新的realm swift 0 92 3 我无法让这个 运行脚本阶段 工作 我按照以下指示进行操作here http realm io docs swift latest 根据说明 我的运行脚本条目是 见下图 不幸的是 我在尝试编译
  • 无法检索无法识别的元素提供者的元数据

    每当我尝试使用实体框架模板添加控制器时 都会收到消息错误 但我不断收到错误消息 unable to retrieve metadata for path unrecognized element providers C Users user
  • 如何在 Objective-c 中编写 ok 按钮动作?

    我是新来的xcode questions tagged xcode 我创建了一个对话框 并在对话框上创建了 确定 按钮 现在 我正在对对话框进行一些操作 之后我想单击 确定 按钮关闭对话框 为此我正在做这样的事情 在 h文件中 interf
  • 如何通过longPressGestureRecognizer获取button.tag?

    我正在动态地将图像按钮添加到某些滚动视图中 它们都指向一个 longPressHandler 现在 我如何知道按下了哪个按钮 sender tag 为我提供了添加到按钮的 longGestureRecognizer 标签 我无法手动设置该标
  • jquery UI 对话框:如何在没有标题栏的情况下初始化?

    是否可以打开没有标题栏的 jQuery UI 对话框 我认为最好的解决方案是使用该选项dialogClass jquery UI 文档摘录 在初始化期间 selector dialog dialogClass noTitleStuff 或者
  • 当 input[type="date"] 处于焦点时如何显示日历弹出窗口

    有没有办法在输入元素的焦点上激活本机 HTML5 日期选择器下拉菜单 大输入元件 目前 我只能通过单击输入元素最右侧的箭头来使用日历 大输入元素单击箭头 我想在输入元素的焦点上激活此日历 这是有问题的代码
  • 如何设置 h:selectOneRadio 按钮的默认值

    我无法设置 h selectOneRadio 的默认值 因为我需要预先选择单选按钮
  • Typo3:8.7.9 CKeditor 保存后删除块样式

    我在 Typo3 中有以下 CKEditor 的 YAML 配置 Load default processing options imports resource EXT rte ckeditor Configuration RTE Pro
  • 捕获多个异常并重新抛出一般异常

    我使用反射将一些数据添加到第三方库中的类内的私有变量中 一路上大约有四种不同的异常可以抛出 所有这些都与反射有关 而且所有这些都不太可能发生 我正在对所涉及的类和变量的名称进行硬编码 我不太可能收到任何未找到类或未找到字段的错误 除非图书馆
  • 如何在屏幕上显示PIL图像?

    我正在使用 PIL 库进行一些图像编辑 关键是 我不想每次都将图像保存在硬盘上以便在资源管理器中查看 是否有一个小模块可以让我简单地设置一个窗口并显示图像 从接近年初开始PIL教程 https web archive org web 202
  • 导入酶后加载模块 DomUtils 时出现 Webpack 错误

    我有一个使用 TypeScript 和 React 0 14 的项目 我用 karma mocha chai 设置了测试环境 以及它的工作 但是当我导入并使用酶中的函数时 我在浏览器中收到错误 来自 Chrome 的人类可读错误 Uncau