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
Webpack 使用带有业力的网页包的正确模式是什么?_Webpack_Karma Webpack - Fatal编程技术网

Webpack 使用带有业力的网页包的正确模式是什么?

Webpack 使用带有业力的网页包的正确模式是什么?,webpack,karma-webpack,Webpack,Karma Webpack,官方文档似乎暗示您需要复制webpack配置——一次在测试之外使用,另一次在karma.conf内部使用 //Karma配置 module.exports=函数(配置){ config.set({ 网页:{ //外部使用相同的网页包配置 }, }; 但是,当我开始复制/粘贴工作的webpack配置时,我开始出现错误。例如,ES6代码没有传输(即使配置了babel)。commons chunk插件无法工作,因为它给出了一个错误。karma.conf如下所示: const webpack=requ

官方文档似乎暗示您需要复制webpack配置——一次在测试之外使用,另一次在karma.conf内部使用

//Karma配置
module.exports=函数(配置){
config.set({
网页:{
//外部使用相同的网页包配置
},
};
但是,当我开始复制/粘贴工作的webpack配置时,我开始出现错误。例如,ES6代码没有传输(即使配置了babel)。commons chunk插件无法工作,因为它给出了一个错误。karma.conf如下所示:

const webpack=require('webpack');
module.exports=函数(配置){
config.set({
//用于解析所有模式(例如文件、排除)的基本路径
基本路径:“”,
档案:[
'test.webpack.js'//只需加载此文件
],
预处理器:{
'test.webpack.js':['webpack','sourcemap']//使用webpack和我们的sourcemap加载器进行预处理
},
网页:{
模块:{
装载机:[
{
测试:/\/js\/.+\.js$/,,
排除:/node_模块/,
加载器:“巴别塔加载器”,
查询:{
预设:['es2015','react'],
插件:[
“transform-es2015-destructuring”,
“变换对象静止排列”
]
}
},
],
},
决心:{
模块目录:['node_modules'],
},
插件:[
新建webpack.optimize.commonChunkPlugin({
文件名:“commons.js”,
名称:“公地”
}),
新的webpack.ProvidePlugin({
“承诺”:“蓝鸟”,
})
],
devtool:“内联源映射”
},
};

有几件事:

  • 在karma中使用主网页包配置似乎是一种惯用的方法。不幸的是,这种方法的一个问题是某些网页包插件在karma中似乎不起作用,例如CommonChunk和Define
  • ES6未编译问题与使用旧版本的karma和karma网页有关。请参阅
  • 我的因果报应:

    const webpackConfig = require('./webpack.config');
    const webpack = require('webpack');
    
    webpackConfig.entry = undefined;
    webpackConfig.output = undefined;
    // tell webpack to ignore these files
    webpackConfig.module.loaders.push([
    {
      test: /\.(jpe?g|png|gif|svg|map|css|std|indent|html|txt)$/i,
      loader: 'ignore-loader',
    },
    ]);
    // karma is actually very brittle. The commons chunk plugin as well as the define plugin break it, so we
    // disable these
    webpackConfig.plugins = webpackConfig.plugins
      .filter(p => !(p instanceof webpack.optimize.CommonsChunkPlugin))
      .filter(p => !(p instanceof webpack.DefinePlugin));
    webpackConfig.devtool = 'inline-source-map';
    
    module.exports = function(config) {
    config.set({
       webpack: webpackConfig,
       //....
    

    您正在提供一个文件
    test.webpack.js
    ,该文件应该加载,但与加载程序模式
    /\/js\/.+\.js$/
    不匹配。如果您将加载程序模式更改为简单的
    /\.js$/
    ,该怎么办?