123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- 'use strict'
- const MiniCssExtractPlugin = require("mini-css-extract-plugin");
- const { VueLoaderPlugin } = require('vue-loader')
- const ESLintPlugin = require('eslint-webpack-plugin');
- const ExtraneousFileCleanupPlugin = require('webpack-extraneous-file-cleanup-plugin');
- const utils = require('./utils')
- const themePath = 'web/themes/custom/materiotheme'
- module.exports = {
- resolve: {
- extensions: ['.js', '.vue', '.json'],
- alias: {
- 'vue': 'vue/dist/vue.js',
- 'theme': utils.resolve(themePath),
- 'vuejs': utils.resolve(themePath+'/vuejs'),
- 'assets': utils.resolve(themePath+'/assets'),
-
- 'locales': utils.resolve('web/sites/default/files/lang')
- }
- },
- entry: {
- 'main': utils.resolve(themePath + '/assets/scripts/main.js'),
- 'print': utils.resolve(themePath + '/assets/styles/print.scss')
- },
- output: {
- path: utils.resolve(themePath + '/assets/dist/'),
- filename: '[name].js'
- },
- module: {
- rules: [
-
-
-
-
-
-
-
-
-
-
- {
- test: /\.vue$/,
- use: 'vue-loader'
- },
-
-
-
-
-
- {
- test: /\.js$/,
- use: {
- loader: 'babel-loader',
- }
- },
- {
- test: /\.(graphql|gql)$/,
- exclude: /node_modules/,
- loader: 'graphql-tag/loader'
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]
- },
- plugins: [
- new MiniCssExtractPlugin({
- filename: '[name].css'
- }),
- new VueLoaderPlugin(),
- new ESLintPlugin({
-
-
-
-
-
- }),
- new ExtraneousFileCleanupPlugin({
- extensions: ['.js'],
- paths: [utils.resolve(themePath + '/assets/dist/')],
- minBytes: 4096
- })
- ]
- }
|