Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/config-generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ class ConfigGenerator {
if (this.webpackConfig.useVueLoader) {
rules.push({
test: /\.vue$/,
use: vueLoaderUtil.getLoaders(this.webpackConfig, this.webpackConfig.vueLoaderOptionsCallback)
use: vueLoaderUtil.getLoaders(this.webpackConfig)
});
}

Expand Down
8 changes: 2 additions & 6 deletions lib/loaders/babel.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
'use strict';

const loaderFeatures = require('../features');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand Down Expand Up @@ -67,12 +68,7 @@ module.exports = {
}
}

// allow for babel config to be controlled
webpackConfig.babelConfigurationCallback.apply(
// use babelConfig as the this variable
babelConfig,
[babelConfig]
);
babelConfig = applyOptionsCallback(webpackConfig.babelConfigurationCallback, babelConfig);
}

return [
Expand Down
9 changes: 2 additions & 7 deletions lib/loaders/coffee-script.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
'use strict';

const loaderFeatures = require('../features');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand All @@ -26,16 +27,10 @@ module.exports = {
}
};

// allow options to be configured
webpackConfig.coffeeScriptConfigurationCallback.apply(
options,
[options]
);

return [
{
loader: 'coffee-loader',
options: options,
options: applyOptionsCallback(webpackConfig.coffeeScriptConfigurationCallback, options)
},
];
}
Expand Down
10 changes: 2 additions & 8 deletions lib/loaders/css.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
'use strict';

const loaderFeatures = require('../features');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand Down Expand Up @@ -42,16 +43,9 @@ module.exports = {
sourceMap: webpackConfig.useSourceMaps
};

// allow options to be configured
webpackConfig.postCssLoaderOptionsCallback.apply(
// use config as the this variable
postCssLoaderOptions,
[postCssLoaderOptions]
);

cssLoaders.push({
loader: 'postcss-loader',
options: postCssLoaderOptions
options: applyOptionsCallback(webpackConfig.postCssLoaderOptionsCallback, postCssLoaderOptions)
});
}

Expand Down
10 changes: 2 additions & 8 deletions lib/loaders/less.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const loaderFeatures = require('../features');
const cssLoader = require('./css');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand All @@ -25,18 +26,11 @@ module.exports = {
sourceMap: webpackConfig.useSourceMaps
};

// allow options to be configured
webpackConfig.lessLoaderOptionsCallback.apply(
// use config as the this variable
config,
[config]
);

return [
...cssLoader.getLoaders(webpackConfig, ignorePostCssLoader),
{
loader: 'less-loader',
options: config
options: applyOptionsCallback(webpackConfig.lessLoaderOptionsCallback, config)
},
];
}
Expand Down
12 changes: 3 additions & 9 deletions lib/loaders/sass.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const loaderFeatures = require('../features');
const cssLoader = require('./css');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand All @@ -35,21 +36,14 @@ module.exports = {
});
}

let config = Object.assign({}, sassOptions, {
const config = Object.assign({}, sassOptions, {
// needed by the resolve-url-loader
sourceMap: (true === webpackConfig.sassOptions.resolveUrlLoader) || webpackConfig.useSourceMaps
});

// allow options to be configured
webpackConfig.sassLoaderOptionsCallback.apply(
// use config as the this variable
config,
[config]
);

sassLoaders.push({
loader: 'sass-loader',
options: config,
options: applyOptionsCallback(webpackConfig.sassLoaderOptionsCallback, config)
});

return sassLoaders;
Expand Down
10 changes: 2 additions & 8 deletions lib/loaders/stylus.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const loaderFeatures = require('../features');
const cssLoader = require('./css');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand All @@ -25,18 +26,11 @@ module.exports = {
sourceMap: webpackConfig.useSourceMaps
};

// allow options to be configured
webpackConfig.stylusLoaderOptionsCallback.apply(
// use config as the this variable
config,
[config]
);

return [
...cssLoader.getLoaders(webpackConfig, ignorePostCssLoader),
{
loader: 'stylus-loader',
options: config
options: applyOptionsCallback(webpackConfig.stylusLoaderOptionsCallback, config)
},
];
}
Expand Down
7 changes: 2 additions & 5 deletions lib/loaders/typescript.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const loaderFeatures = require('../features');
const babelLoader = require('./babel');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand All @@ -26,11 +27,7 @@ module.exports = {
};

// allow for ts-loader config to be controlled
webpackConfig.tsConfigurationCallback.apply(
// use config as the this variable
config,
[config]
);
config = applyOptionsCallback(webpackConfig.tsConfigurationCallback, config);

// fork-ts-checker-webpack-plugin integration
if (webpackConfig.useForkedTypeScriptTypeChecking) {
Expand Down
10 changes: 4 additions & 6 deletions lib/loaders/vue.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ const sassLoaderUtil = require('./sass');
const lessLoaderUtil = require('./less');
const babelLoaderUtil = require('./babel');
const extractText = require('./extract-text');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
* @param {function} vueLoaderOptionsCallback
* @return {Array} of loaders to use for Vue files
*/
module.exports = {
getLoaders(webpackConfig, vueLoaderOptionsCallback) {
getLoaders(webpackConfig) {
loaderFeatures.ensurePackagesExist('vue');

/*
Expand Down Expand Up @@ -117,16 +117,14 @@ module.exports = {
};
}

let options = {
const options = {
loaders: loaders
};
// allow the options to be mutated via a callback
vueLoaderOptionsCallback(options);

return [
{
loader: 'vue-loader',
options: options
options: applyOptionsCallback(webpackConfig.vueLoaderOptionsCallback, options)
}
];
}
Expand Down
8 changes: 2 additions & 6 deletions lib/plugins/clean.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const CleanWebpackPlugin = require('clean-webpack-plugin');
const PluginPriorities = require('./plugin-priorities');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* Updates plugins array passed adding CleanWebpackPlugin instance
Expand All @@ -30,15 +31,10 @@ module.exports = function(plugins, webpackConfig) {
verbose: false,
};

webpackConfig.cleanWebpackPluginOptionsCallback.apply(
cleanWebpackPluginOptions,
[cleanWebpackPluginOptions]
);

plugins.push({
plugin: new CleanWebpackPlugin(
webpackConfig.cleanWebpackPluginPaths,
cleanWebpackPluginOptions
applyOptionsCallback(webpackConfig.cleanWebpackPluginOptionsCallback, cleanWebpackPluginOptions)
),
priority: PluginPriorities.CleanWebpackPlugin
});
Expand Down
10 changes: 4 additions & 6 deletions lib/plugins/define.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const webpack = require('webpack');
const PluginPriorities = require('./plugin-priorities');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {Array} plugins
Expand All @@ -24,13 +25,10 @@ module.exports = function(plugins, webpackConfig) {
}
};

webpackConfig.definePluginOptionsCallback.apply(
definePluginOptions,
[definePluginOptions]
);

plugins.push({
plugin: new webpack.DefinePlugin(definePluginOptions),
plugin: new webpack.DefinePlugin(
applyOptionsCallback(webpackConfig.definePluginOptionsCallback, definePluginOptions)
),
priority: PluginPriorities.DefinePlugin
});
};
10 changes: 4 additions & 6 deletions lib/plugins/extract-text.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const ExtractTextPlugin = require('extract-text-webpack-plugin');
const PluginPriorities = require('./plugin-priorities');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {Array} plugins
Expand Down Expand Up @@ -45,13 +46,10 @@ module.exports = function(plugins, webpackConfig) {
allChunks: false
};

webpackConfig.extractTextPluginOptionsCallback.apply(
extractTextPluginOptions,
[extractTextPluginOptions]
);

plugins.push({
plugin: new ExtractTextPlugin(extractTextPluginOptions),
plugin: new ExtractTextPlugin(
applyOptionsCallback(webpackConfig.extractTextPluginOptionsCallback, extractTextPluginOptions)
),
priority: PluginPriorities.ExtractTextWebpackPlugin
});
};
14 changes: 5 additions & 9 deletions lib/plugins/forked-ts-types.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,19 @@

const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); // eslint-disable-line
const PluginPriorities = require('./plugin-priorities');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
* @return {void}
*/
module.exports = function(webpackConfig) {
let config = {};

// allow for ts-loader config to be controlled
webpackConfig.forkedTypeScriptTypesCheckOptionsCallback.apply(
// use config as the this variable
config,
[config]
);
const config = {};

webpackConfig.addPlugin(
new ForkTsCheckerWebpackPlugin(config),
new ForkTsCheckerWebpackPlugin(
applyOptionsCallback(webpackConfig.forkedTypeScriptTypesCheckOptionsCallback, config)
),
PluginPriorities.ForkTsCheckerWebpackPlugin
);
};
8 changes: 3 additions & 5 deletions lib/plugins/friendly-errors.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const missingPostCssConfigTransformer = require('../friendly-errors/transformers
const missingPostCssConfigFormatter = require('../friendly-errors/formatters/missing-postcss-config');
const vueUnactivatedLoaderTransformer = require('../friendly-errors/transformers/vue-unactivated-loader-error');
const vueUnactivatedLoaderFormatter = require('../friendly-errors/formatters/vue-unactivated-loader-error');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {WebpackConfig} webpackConfig
Expand All @@ -39,10 +40,7 @@ module.exports = function(webpackConfig) {
}
};

webpackConfig.friendlyErrorsPluginOptionsCallback.apply(
friendlyErrorsPluginOptions,
[friendlyErrorsPluginOptions]
return new FriendlyErrorsWebpackPlugin(
applyOptionsCallback(webpackConfig.friendlyErrorsPluginOptionsCallback, friendlyErrorsPluginOptions)
);

return new FriendlyErrorsWebpackPlugin(friendlyErrorsPluginOptions);
};
10 changes: 4 additions & 6 deletions lib/plugins/loader-options.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

const webpack = require('webpack');
const PluginPriorities = require('./plugin-priorities');
const applyOptionsCallback = require('../utils/apply-options-callback');

/**
* @param {Array} plugins
Expand All @@ -35,13 +36,10 @@ module.exports = function(plugins, webpackConfig) {
}
};

webpackConfig.loaderOptionsPluginOptionsCallback.apply(
loaderOptionsPluginOptions,
[loaderOptionsPluginOptions]
);

plugins.push({
plugin: new webpack.LoaderOptionsPlugin(loaderOptionsPluginOptions),
plugin: new webpack.LoaderOptionsPlugin(
applyOptionsCallback(webpackConfig.loaderOptionsPluginOptionsCallback, loaderOptionsPluginOptions)
),
priority: PluginPriorities.LoaderOptionsPlugin
});
};
Loading