Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Phantomjs 网页包dllplugin如何与karma一起使用?_Phantomjs_Webpack_Karma Runner_Karma Mocha - Fatal编程技术网

Phantomjs 网页包dllplugin如何与karma一起使用?

Phantomjs 网页包dllplugin如何与karma一起使用?,phantomjs,webpack,karma-runner,karma-mocha,Phantomjs,Webpack,Karma Runner,Karma Mocha,我试图在我的业力测试中使用DLLReferencePlugin,但我不完全确定如何让它工作 我将vendors.js和vendors manifest.json放在src/static/ dll是用libraryTarget=var生成的,它可以在我的开发和生产网页包版本中工作。我的开发/生产版本使用一个html文件,该文件的根路径上有一个指向“vendors.js”的脚本标记。开发/生产构建将静态文件夹中的所有文件复制到目标文件夹。因此,脚本标记可以找到vendors.js 但是,我从Phan

我试图在我的业力测试中使用
DLLReferencePlugin
,但我不完全确定如何让它工作

我将
vendors.js
vendors manifest.json
放在
src/static/
dll是用
libraryTarget=var
生成的,它可以在我的开发和生产网页包版本中工作。我的开发/生产版本使用一个html文件,该文件的根路径上有一个指向“vendors.js”的脚本标记。开发/生产构建将静态文件夹中的所有文件复制到目标文件夹。因此,脚本标记可以找到
vendors.js

但是,我从PhantomJS得到一个错误:
ReferenceError:在运行测试时找不到变量:vendors
。我想知道它是否找不到
vendors.js
script标签

如果karma配置来自DLL插件,如何在karma配置中使用
vendors.js

我对因果报应还不熟悉,所以任何指导都将受到极大的赞赏

我尝试了很多没有结果的事情,包括在我的测试条目文件中放入
require('vendors.js')
,使用resolve别名将供应商的externals设置为true,但由于我对karma知之甚少,所以感觉我几乎是在黑暗中拍摄。因此,任何帮助都将不胜感激

我的业力配置如下。这来自我正在使用的。我的测试文件与初学者工具包中的测试文件相同。如果您需要任何其他信息来帮助,请告诉我。谢谢

const karmaConfig = {
  basePath : '../', // project root in relation to bin/karma.js
  files    : [
    {
      pattern  : `./test-bundler.js`,
      watched  : false,
      served   : true,
      included : true
    }
  ],
  singleRun     : !argv.watch,
  frameworks    : ['mocha'],
  reporters     : ['mocha'],
  preprocessors : {
    [`/test-bundler.js`] : ['webpack']
  },
  browsers : ['PhantomJS'],
  webpack  : {
    devtool : 'cheap-module-source-map',
    resolve : Object.assign({}, webpackConfig.resolve, {
      alias : Object.assign({}, webpackConfig.resolve.alias, {
        sinon : 'sinon/pkg/sinon.js'
      })
    }),
    plugins : webpackConfig.plugins,
    module  : {
      noParse : [
        /\/sinon\.js/
      ],
      loaders : webpackConfig.module.loaders.concat([
        {
          test   : /sinon(\\|\/)pkg(\\|\/)sinon\.js/,
          loader : 'imports?define=>false,require=>false'
        }
      ])
    },
    // Enzyme fix, see:
    // https://github.com/airbnb/enzyme/issues/47
    externals : Object.assign({}, webpackConfig.externals, {
      'react/addons'                   : true,
      'react/lib/ExecutionEnvironment' : true,
      'react/lib/ReactContext'         : 'window'
    })
  },
  webpackMiddleware : {
    noInfo : true
  },
  coverageReporter : {
    reporters : config.coverage_reporters
  }
}

if (config.globals.__COVERAGE__) {
  karmaConfig.reporters.push('coverage')
  karmaConfig.webpack.module.preLoaders = [{
    test    : /\.(js|jsx)$/,
    include : new RegExp(config.dir_client),
    loader  : 'babel',
    query   : Object.assign({}, config.compiler_babel, {
      plugins : (config.compiler_babel.plugins || []).concat('istanbul')
    })
  }]
}

回答我自己的问题。。Jeeze有时候只需要看一些文件

我把它放在karma配置的文件条目中:

files: [{
  pattern : `./src/static/vendors.js/`,
  watched : false,
  served  : true
},
...]