私はkarmaテストでDLLReferencePlugin
を使用しようとしていますが、それを動作させる方法は完全にはわかりません。webpack dllpluginカルマと一緒に使う方法?
私はsrc/static/
DLLがlibraryTarget=var
で生成された、それは私のDEVで動作し、生産のWebPACKビルドでvendors.js
とvendors-manifest.json
を配置しました。私のdev/productionビルドでは、ルートパスに "vendors.js"を指すスクリプトタグを持つhtmlファイルを使用します。 dev/productionビルドは、静的フォルダ内のすべてのファイルをコピー先フォルダにコピーします。したがって、スクリプトタグはvendors.js
です。
ただし、私のテストを実行するとPhantomJS:ReferenceError: Can't find variable: vendors
からエラーが発生します。 vendors.js
スクリプトタグが見つからないのですか?
vendors.js
を私のカルマの設定で使用するにはどうすればDLLプラグインから来ますか?
私はカルマに新しいので、どんな指針も大変ありがとうございます。
私はテストエントリファイルにrequire('vendors.js')
を入れて、解決エイリアスを使用してベンダーのために外部を設定していますが、カルマについての知識はほとんどないので、私のように感じます暗闇の中でかなり撮影。したがって、どんな援助も大いに感謝されます。
私のカルマの設定は以下の通りです。これは私が使用しているstarter kitからのものです。テストファイルもスターターキットと同じです。その他の情報が必要な場合はお知らせください。ありがとう! Jeezeそれが取るすべては...時々
をいくつかのドキュメントを読んでいる...自分の質問に答える
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')
})
}]
}