【问题标题】:karma-browserify throws error when trying to load modules shimmed with browserify-shimkarma-browserify 在尝试加载使用 browserify-shim 填充的模块时抛出错误
【发布时间】:2015-03-14 15:43:43
【问题描述】:

我知道有类似的问题,但没有一个能解决我的问题。

当我运行 karma test 时,它每次尝试加载一个模块时都会抛出以下错误,该模块由 browserify-shim 填充:

TypeError: 'undefined' is not an object (evaluating 'module.exports = ex')
  at /tmp/8ff1e03f7ba1f9c70ee4192510d267a2.browserify:3855:0 <- lib/underscore/underscore.js:1421:0

我的 karma.conf.js 如下:

module.exports = function(karma) {
    karma.set({

        frameworks: [ 'jasmine', 'browserify' ],

        files: [
            'test/spec/**/*Spec.js'
        ],

        reporters: [ 'dots' ],

        preprocessors: {
            'test/spec/**/*Spec.js': [ 'browserify' ]
        },

        browsers: [ 'PhantomJS' ],

        logLevel: 'LOG_DEBUG',

        singleRun: true,
        autoWatch: false,

        // browserify configuration
        browserify: {
            debug: true,
            transform: [ 'reactify', 'browserify-shim' ]
        }
    });
};

这是我的 package.json 文件的相关部分:

...
  "browser": {
    "underscore": "./lib/underscore/underscore.js",
    "jquery": "./lib/jquery/dist/jquery.js",
    "typeahead": "./lib/bootstrap3-typeahead/bootstrap3-typeahead.js",
    "bootstrap": "./lib/bootstrap/dist/js/bootstrap.js",
    "q": "./lib/q/q.js"
  },
  "browserify-shim": {
    "underscore": "_",
    "jquery": "jQuery",
    "typeahead": {
      "depends": [
        "jquery"
      ]
    }
  },
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
....

知道什么会导致问题吗?

【问题讨论】:

  • 你找到答案了吗?
  • 很遗憾没有。我决定使用节点模块而不是凉亭组件,所以我不需要填充我的库。 (但我仍然对解决方案感兴趣,因为我想为客户端库提供用户凉亭)

标签: karma-runner browserify browserify-shim


【解决方案1】:

我遇到了同样的问题,并且通过从 karma 配置文件中删除 browserify-shim 转换得到了resolved it,因为它已经在 package.json 文件中声明为转换。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    相关资源
    最近更新 更多