UNPKG

ae-biu

Version:

Born For AE, Born To Do

224 lines (178 loc) 6.31 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _webpack = require('webpack'); var _webpack2 = _interopRequireDefault(_webpack); var _htmlWebpackPlugin = require('html-webpack-plugin'); var _htmlWebpackPlugin2 = _interopRequireDefault(_htmlWebpackPlugin); var _copyWebpackPlugin = require('copy-webpack-plugin'); var _copyWebpackPlugin2 = _interopRequireDefault(_copyWebpackPlugin); var _friendlyErrorsWebpackPlugin = require('friendly-errors-webpack-plugin'); var _friendlyErrorsWebpackPlugin2 = _interopRequireDefault(_friendlyErrorsWebpackPlugin); var _flat = require('flat'); var _flat2 = _interopRequireDefault(_flat); var _logger = require('../utils/logger'); var _logger2 = _interopRequireDefault(_logger); var _postcss = require('./postcss.config'); var _postcss2 = _interopRequireDefault(_postcss); var _less = require('./less.config'); var _less2 = _interopRequireDefault(_less); var _paths = require('../utils/paths'); var _getPolyfills = require('../utils/get-polyfills'); var _getPolyfills2 = _interopRequireDefault(_getPolyfills); var _package = require('../utils/package'); var _package2 = _interopRequireDefault(_package); var _webpack3 = require('./webpack.common'); var _webpack4 = _interopRequireDefault(_webpack3); var _constants = require('../utils/constants'); var _useCdn = require('../utils/use-cdn'); var _useCdn2 = _interopRequireDefault(_useCdn); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } console.log(); _logger2.default.info('Create configuration for NODE_ENV: development\n'); var SDP_ENV = (process.env.SDP_ENV || 'test').trim(); _logger2.default.info('Project running under SDP_ENV: ' + SDP_ENV + '\n'); var polyfills = (0, _getPolyfills2.default)(); function getCSSLoader(lang, i18nLangs) { var loaders = [{ loader: 'style-loader' }, { loader: 'css-loader', options: { importLoaders: 1 } }, { loader: 'postcss-loader', options: (0, _postcss2.default)(i18nLangs) }]; if (lang === 'less') { loaders.push({ loader: 'less-loader', options: _less2.default }); } return loaders; } var _pkg$ae = _package2.default.ae, ae = _pkg$ae === undefined ? {} : _pkg$ae; var _ae$languages = ae.languages, LANGS = _ae$languages === undefined ? _constants.DEFAULT_LANG_MAP : _ae$languages, _ae$output = ae.output, dist = _ae$output === undefined ? 'dist' : _ae$output, ORG_NAME = ae.org; var webpackConfig = { target: 'web', entry: { app: ['webpack-dev-server/client', 'webpack/hot/dev-server'].concat((0, _toConsumableArray3.default)(polyfills), [_path2.default.resolve(_paths.srcDir, 'index.js')]) }, output: { path: _path2.default.resolve(_paths.workDir, dist), publicPath: '/', filename: '[name].[hash].js', chunkFilename: '[id].[hash].js' }, resolve: { modules: [_paths.srcDir, 'node_modules'], extensions: ['.js', '.jsx', '.ts', '.tsx', '.css', 'less'], alias: (0, _extends3.default)({ '~': _paths.srcDir }, _webpack4.default.alias) }, node: { fs: 'empty', net: 'empty' }, devtool: 'cheap-module-eval-source-map', performance: { hints: false }, module: { rules: [{ test: /\.jsx?$/, include: _paths.srcDir, use: [{ loader: 'eslint-loader', options: { emitWarning: true, formatter: require('eslint-friendly-formatter') } }], enforce: 'pre' }, { test: /\.jsx?$/, include: [_paths.srcDir, /@ae\.sdp\.nd[/\\](?!node_modules)/, /[/\\]node_modules.*[/\\]((lodash-)?es)[/\\](?!node_modules)/], use: 'babel-loader' }, { test: /\.tsx?$/, include: [_paths.srcDir, /@ae\.sdp\.nd[/\\](?!node_modules)/], use: [{ loader: 'babel-loader' }, { loader: 'ts-loader', options: { transpileOnly: true } }] }, { test: /\.css$/, use: getCSSLoader('css', LANGS) }, { test: /\.less$/, use: getCSSLoader('less', LANGS) }, { test: /\.(png|jpg|gif|svg|woff2?|eot|ttf)(\?.*)?$/, use: [{ loader: 'url-loader', options: { limit: 8192, name: '[name].[ext]?[hash:7]' } }] }] }, plugins: [].concat((0, _toConsumableArray3.default)(_webpack4.default.plugins), [new _webpack2.default.DefinePlugin({ 'process.env.NODE_ENV': (0, _stringify2.default)('development'), 'process.env.SDP_ENV': (0, _stringify2.default)(process.env.SDP_ENV), 'process.env.LANGS': (0, _stringify2.default)(LANGS) }), new _htmlWebpackPlugin2.default({ SDP_ENV: process.env.SDP_ENV, ORG_NAME: ORG_NAME, CDN: _package2.default.cdn || {}, filename: 'index.html', template: _paths.tplPath, title: _package2.default.name + ' - ' + _package2.default.description, hash: false, inject: !(0, _useCdn2.default)(_package2.default.cdn, process.env.SDP_ENV), minify: { collapseWhitespace: false, minifyJS: false } }), new _copyWebpackPlugin2.default([{ from: _path2.default.resolve(_paths.srcDir, 'static') }, { context: _path2.default.resolve(_paths.srcDir, 'modules'), from: '**/*.json', to: 'locale', transform: function transform(content) { return (0, _stringify2.default)((0, _flat2.default)(JSON.parse(content))); } }], { ignore: ['README.md'] }), new _webpack2.default.HotModuleReplacementPlugin(), new _webpack2.default.NamedModulesPlugin(), new _webpack2.default.NoEmitOnErrorsPlugin(), new _webpack2.default.LoaderOptionsPlugin({ debug: true, options: { context: _paths.workDir } }), new _friendlyErrorsWebpackPlugin2.default()]) }; exports.default = webpackConfig; module.exports = exports['default'];