text: var path = require('path')
  var utils = require('./utils')
  var config = require('../config')
  var ngLoaderConfig = require('./ng-loader.conf')
  
  function resolve (dir) {
    return path.join(__dirname, '..', dir)
  }
  
  module.exports = {
    entry: {
      app: resolve("src/main.js")
    },
    output: {
      path: config.build.assetsRoot,
      filename: '[name].js',
      publicPath: process.env.NODE_ENV === 'production'
        ? config.build.assetsPublicPath
        : config.dev.assetsPublicPath
    },
    resolve: {
      extensions: ['.js', '.ng', '.json'],
      alias: {
        '@': resolve('src'),
        'assets': resolve('src/assets'),
        'core': resolve('src/core'),
        'components': resolve('src/components'),
        'modules': resolve('src/modules'),
        'services': resolve('src/services')
      }
    },
    module: {
      rules: [
          {
              test: /\.ng$/,
              loader: 'ng-loader',
              options: ngLoaderConfig
          },
          {
              test: /\.js$/,
              loader: 'babel-loader',
              include: [resolve('src'), resolve('test')]
          },
          {
              test: /\.html$/,
              loader: 'html-loader',
              query: {
                  minimize: true
              }
          },
          {
              test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
              loader: 'url-loader',
              options: {
                  limit: 10000,
                  name: utils.assetsPath('img/[name].[hash:7].[ext]')
              }
          },
          {
              test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
              loader: 'url-loader',
              options: {
                  limit: 10000,
                  name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
              }
          }
      ]
    }
  }
  