12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /**
- * React Static Boilerplate
- * Copyright (c) Konstantin Tarkus | MIT License
- */
- import path from 'path';
- import minimist from 'minimist';
- import webpack from 'webpack';
- import gutil from 'gulp-util';
- import autoprefixer from 'autoprefixer-core';
- import merge from 'lodash/object/merge';
- const argv = minimist(process.argv.slice(2));
- const DEBUG = !argv.release;
- const VERBOSE = !!argv.verbose;
- const AUTOPREFIXER_BROWSERS = [
- 'Android 2.3',
- 'Android >= 4',
- 'Chrome >= 20',
- 'Firefox >= 24',
- 'Explorer >= 8',
- 'iOS >= 6',
- 'Opera >= 12',
- 'Safari >= 6'
- ];
- // Base configuration
- const config = {
- output: {
- path: path.join(__dirname, 'build'),
- publicPath: './',
- sourcePrefix: ' '
- },
- cache: false,
- debug: DEBUG,
- stats: {
- colors: gutil.colors.supportsColor,
- reasons: DEBUG,
- hash: VERBOSE,
- version: VERBOSE,
- timings: VERBOSE,
- chunks: VERBOSE,
- chunkModules: VERBOSE,
- cached: VERBOSE,
- cachedAssets: VERBOSE
- },
- plugins: [
- new webpack.optimize.OccurenceOrderPlugin(),
- new webpack.DefinePlugin({
- 'process.env.NODE_ENV': DEBUG ? '"development"' : '"production"',
- '__DEV__': DEBUG
- })
- ],
- module: {
- loaders: [{
- test: /\.jsx?$/,
- exclude: /node_modules/,
- loader: 'babel-loader'
- }, {
- test: /routes\.jsx?$/,
- loader: './routes-loader.js'
- }]
- },
- postcss: [autoprefixer(AUTOPREFIXER_BROWSERS)]
- };
- // Configuration for the client-side bundle
- const appConfig = merge({}, config, {
- entry: ['./scripts/app.js'].concat(global.hot ? 'webpack/hot/dev-server' : []),
- output: {
- filename: 'app.js'
- }
- });
- // Configuration for server-side pre-rendering bundle
- const pagesConfig = merge({}, config, {
- entry: './scripts/pages.js',
- output: {
- filename: 'pages.js',
- libraryTarget: 'commonjs2'
- },
- target: 'node',
- externals: /^[a-z][a-z\.\-0-9]*$/,
- node: {
- console: false,
- global: false,
- process: false,
- Buffer: false,
- __filename: false,
- __dirname: false
- }
- });
- export default [appConfig, pagesConfig];
|