89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
const env = require("./defaults/lottery");
 | 
						|
const webpack = require("webpack");
 | 
						|
const VueLoaderPlugin = require("vue-loader/lib/plugin");
 | 
						|
const MiniCSSExtractPlugin = require("mini-css-extract-plugin");
 | 
						|
const helpers = require("./helpers");
 | 
						|
 | 
						|
const webpackConfig = function(isDev) {
 | 
						|
  return {
 | 
						|
    resolve: {
 | 
						|
      extensions: [".js", ".vue"],
 | 
						|
      alias: {
 | 
						|
        vue$: isDev ? "vue/dist/vue.min.js" : "vue/dist/vue.min.js",
 | 
						|
        "@": helpers.root("src")
 | 
						|
      }
 | 
						|
    },
 | 
						|
    module: {
 | 
						|
      rules: [
 | 
						|
        {
 | 
						|
          test: /\.vue$/,
 | 
						|
          use: [
 | 
						|
            {
 | 
						|
              loader: "vue-loader",
 | 
						|
              options: {
 | 
						|
                loaders: {
 | 
						|
                  scss: "vue-style-loader!css-loader!sass-loader",
 | 
						|
                  sass: "vue-style-loader!css-loader!sass-loader?indentedSyntax"
 | 
						|
                }
 | 
						|
              }
 | 
						|
            }
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        {
 | 
						|
          test: /\.js$/,
 | 
						|
          loader: "babel-loader",
 | 
						|
          include: [helpers.root("src")]
 | 
						|
        },
 | 
						|
        {
 | 
						|
          test: /\.css$/,
 | 
						|
          use: [
 | 
						|
            isDev ? "vue-style-loader" : MiniCSSExtractPlugin.loader,
 | 
						|
            { loader: "css-loader", options: { sourceMap: isDev } }
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        {
 | 
						|
          test: /\.scss$/,
 | 
						|
          use: [
 | 
						|
            isDev ? "vue-style-loader" : MiniCSSExtractPlugin.loader,
 | 
						|
            { loader: "css-loader", options: { sourceMap: isDev } },
 | 
						|
            { loader: "sass-loader", options: { sourceMap: isDev } }
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        {
 | 
						|
          test: /\.sass$/,
 | 
						|
          use: [
 | 
						|
            isDev ? "vue-style-loader" : MiniCSSExtractPlugin.loader,
 | 
						|
            { loader: "css-loader", options: { sourceMap: isDev } },
 | 
						|
            { loader: "sass-loader", options: { sourceMap: isDev } }
 | 
						|
          ]
 | 
						|
        },
 | 
						|
        {
 | 
						|
          test: /\.woff(2)?(\?[a-z0-9]+)?$/,
 | 
						|
          loader: "url-loader?limit=10000&mimetype=application/font-woff"
 | 
						|
        },
 | 
						|
        {
 | 
						|
          test: /\.(ttf|eot|svg)(\?[a-z0-9]+)?$/,
 | 
						|
          loader: "file-loader"
 | 
						|
        }
 | 
						|
      ]
 | 
						|
    },
 | 
						|
    plugins: [
 | 
						|
      new VueLoaderPlugin(),
 | 
						|
      new webpack.DefinePlugin({
 | 
						|
        __NAME__: JSON.stringify(env.name),
 | 
						|
        __PHONE__: JSON.stringify(env.phone),
 | 
						|
        __PRICE__: env.price,
 | 
						|
        __MESSAGE__: JSON.stringify(env.message),
 | 
						|
        __DATE__: env.date,
 | 
						|
        __HOURS__: env.hours,
 | 
						|
        __APIURL__: JSON.stringify(env.apiUrl),
 | 
						|
        __PUSHENABLED__: JSON.stringify(require("./defaults/push") != false)
 | 
						|
      })
 | 
						|
    ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
module.exports = webpackConfig;
 |