Skip to content
This repository has been archived by the owner on Apr 1, 2020. It is now read-only.

Commit

Permalink
no implicit return for future flexibility/settings
Browse files Browse the repository at this point in the history
  • Loading branch information
leggsimon committed Jun 2, 2017
1 parent c7af76e commit fe904ce
Showing 1 changed file with 126 additions and 123 deletions.
249 changes: 126 additions & 123 deletions build/webpack/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,140 +31,143 @@ const handlebarsConfig = () => {
};
};

module.exports = () => ({
devtool: 'source-map',
module.exports = function () {
return {
devtool: 'source-map',

resolve: {
root: [
path.resolve('./bower_components'),
path.resolve('./node_modules')
],
alias: Object.assign(require('babel-polyfill-silencer/aliases'), {
'react': 'preact-compat',
'react-dom': 'preact-compat'
}),
},
resolve: {
root: [
path.resolve('./bower_components'),
path.resolve('./node_modules')
],
alias: Object.assign(require('babel-polyfill-silencer/aliases'), {
'react': 'preact-compat',
'react-dom': 'preact-compat'
}),
},

module: {
loaders: [
//babel
{
test: /\.js$/,
loader: require.resolve('babel-loader'),
include: [
/bower_components/,
path.resolve('./node_modules/@financial-times/n-handlebars/src/helpers'),
path.resolve('./server/helpers'), // more handlebars helpers
path.resolve('./client'),
path.resolve('./config'),
path.resolve('./shared'),
/@financial-times\/n-card/,
/@financial-times\/n-email-article/,
/@financial-times\/n-image/,
/@financial-times\/n-myft-ui/,
/@financial-times\/n-notification/,
/@financial-times\/n-section/,
/@financial-times\/n-ui/,
/@financial-times\/n-teaser/,
/@financial-times\/n-counter-ad-blocking/,
/@financial-times\/n-native-ads/,
/@financial-times\/n-tourtip/,
/.*/
],
exclude: [
/node_modules/
],
query: {
babelrc: false, // ignore any .babelrc in project & dependencies
cacheDirectory: true,
plugins: [
require.resolve('babel-plugin-add-module-exports', true),
[
require.resolve('babel-plugin-transform-runtime'),
{ polyfill: false }
module: {
loaders: [
//babel
{
test: /\.js$/,
loader: require.resolve('babel-loader'),
include: [
/bower_components/,
path.resolve('./node_modules/@financial-times/n-handlebars/src/helpers'),
path.resolve('./server/helpers'), // more handlebars helpers
path.resolve('./client'),
path.resolve('./config'),
path.resolve('./shared'),
/@financial-times\/n-card/,
/@financial-times\/n-email-article/,
/@financial-times\/n-image/,
/@financial-times\/n-myft-ui/,
/@financial-times\/n-notification/,
/@financial-times\/n-section/,
/@financial-times\/n-ui/,
/@financial-times\/n-teaser/,
/@financial-times\/n-counter-ad-blocking/,
/@financial-times\/n-native-ads/,
/@financial-times\/n-tourtip/,
/.*/
],
exclude: [
/node_modules/
],
query: {
babelrc: false, // ignore any .babelrc in project & dependencies
cacheDirectory: true,
plugins: [
require.resolve('babel-plugin-add-module-exports', true),
[
require.resolve('babel-plugin-transform-runtime'),
{ polyfill: false }
],
// require.resolve('babel-plugin-transform-es2015-modules-commonjs'), // not sure this was ever actually used??
[
require.resolve('babel-plugin-transform-es2015-classes'),
{ loose: true }
]
],
// require.resolve('babel-plugin-transform-es2015-modules-commonjs'), // not sure this was ever actually used??
[
require.resolve('babel-plugin-transform-es2015-classes'),
{ loose: true }
presets: [
require.resolve('babel-preset-react'),
require.resolve('babel-preset-es2015')
]
],
presets: [
require.resolve('babel-preset-react'),
require.resolve('babel-preset-es2015')
]
},
// compact: process.argv.includes('--dev') ? false : true // not sure this was ever actually used??

},
//base-js
// don't use requireText plugin (use the 'raw' plugin)
{
test: /follow-email\.js$/,
loader: require.resolve('imports-loader'),
query: 'requireText=>require'
},
{
test: /\.html$/,
loader: 'handlebars?' + JSON.stringify(handlebarsConfig())
},
// compact: process.argv.includes('--dev') ? false : true // not sure this was ever actually used??
// base-scss
// set 'this' scope to window
{
test: /cssrelpreload\.js$/,
loader: require.resolve('imports-loader'),
query: 'this=>window'
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract([
process.argv.includes('--dev') ? 'css?sourceMap' : 'css?minimize&-autoprefixer&sourceMap',
'postcss',
'sass'
])
}
]
},

},
//base-js
// don't use requireText plugin (use the 'raw' plugin)
{
test: /follow-email\.js$/,
loader: require.resolve('imports-loader'),
query: 'requireText=>require'
},
{
test: /\.html$/,
loader: 'handlebars?' + JSON.stringify(handlebarsConfig())
},
// base-scss
// set 'this' scope to window
{
test: /cssrelpreload\.js$/,
loader: require.resolve('imports-loader'),
query: 'this=>window'
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract([
process.argv.includes('--dev') ? 'css?sourceMap' : 'css?minimize&-autoprefixer&sourceMap',
'postcss',
'sass'
])
}
]
},
sassLoader: {
sourcemap: true,
includePaths: [
path.resolve('./bower_components'),
path.resolve('./node_modules/@financial-times')
],
// NOTE: This line is important for preservation of comments needed by the css-extract-block plugin
outputStyle: 'expanded'
},

sassLoader: {
sourcemap: true,
includePaths: [
path.resolve('./bower_components'),
path.resolve('./node_modules/@financial-times')
],
// NOTE: This line is important for preservation of comments needed by the css-extract-block plugin
outputStyle: 'expanded'
},
postcss: () => {
return [ autoprefixer({
browsers: ['> 1%', 'last 2 versions', 'ie >= 9', 'ff ESR', 'bb >= 7', 'iOS >= 5'],
flexbox: 'no-2009'
}) ];
},

postcss: () => {
return [ autoprefixer({
browsers: ['> 1%', 'last 2 versions', 'ie >= 9', 'ff ESR', 'bb >= 7', 'iOS >= 5'],
flexbox: 'no-2009'
}) ];
},
plugins: [
new BowerWebpackPlugin({
includes: /\.js$/,
modulesDirectories: path.resolve('./bower_components')
}),
new ExtractTextPlugin('[name]'),

plugins: [
new BowerWebpackPlugin({
includes: /\.js$/,
modulesDirectories: path.resolve('./bower_components')
}),
new ExtractTextPlugin('[name]'),

],

],
resolveLoader: {
alias: {
raw: require.resolve('raw-loader'),
imports: require.resolve('imports-loader'),
postcss: require.resolve('postcss-loader'),
sass: require.resolve('sass-loader'),
}
},

resolveLoader: {
alias: {
raw: require.resolve('raw-loader'),
imports: require.resolve('imports-loader'),
postcss: require.resolve('postcss-loader'),
sass: require.resolve('sass-loader'),
output: {
filename: '[name]',
library: 'ftNextUi',
devtoolModuleFilenameTemplate: 'n-ui//[resource-path]?[loaders]'
}
},
};

output: {
filename: '[name]',
library: 'ftNextUi',
devtoolModuleFilenameTemplate: 'n-ui//[resource-path]?[loaders]'
}
})
}

0 comments on commit fe904ce

Please sign in to comment.