Files
salvato.newfreeplanet/config/webpack.config.base.js
Paolo Arena d28050e71f Circuits...
Circuits Fido e Max Qta
Fixed error eslint: 7.0.0 is OK
2022-09-11 11:45:13 +02:00

128 lines
4.0 KiB
JavaScript
Executable File

const path = require('path');
const webpack = require('webpack')
const FaviconsWebpackPlugin = require('favicons-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const autoprefixer = require('autoprefixer');
const cssNext = require('postcss-cssnext');
const postcssImport = require('postcss-import');
const helpers = require('./helpers');
const baseConfig = {
entry: {
bundle: path.resolve(__dirname, '/src/main.ts'),
},
output: {
filename: '[nametranslate].js',
publicPath: '/',
path: path.resolve(__dirname, 'dist'),
},
resolve: {
extensions: [
'.ts', '.js', '.vue',
],
alias: {
vue: '@vue/compat',
'@components': path.resolve(__dirname, 'src/components/index.ts'),
'@boot': path.resolve(__dirname, 'src/boot/*'),
'@costanti': path.resolve(__dirname, 'src/store/Modules/costanti.ts'),
'@views': path.resolve(__dirname, 'src/views/index.ts'),
'@': path.resolve(__dirname, 'src'),
'@src': path.resolve(__dirname, 'src'),
'@icons': path.resolve(__dirname, 'src/assets/icons'),
'@images': path.resolve(__dirname, 'src/assets/images'),
'@classes': path.resolve(__dirname, 'src/classes/index.ts'),
'@fonts': path.resolve(__dirname, 'src/assets/fonts'),
'@utils': path.resolve(__dirname, 'src/utils/index.ts'),
'@css': path.resolve(__dirname, 'src/styles/variables.scss'),
'@router': path.resolve(__dirname, 'src/router/index.ts'),
'@validators': path.resolve(__dirname, 'src/utils/validators.ts'),
'@methods': path.resolve(__dirname, 'src/utils/methods.ts'),
'@filters': path.resolve(__dirname, 'src/utils/filters.ts'),
'@api': path.resolve(__dirname, 'src/store/Api/index.ts'),
'@paths': path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
'@storemod': path.resolve(__dirname, 'src/store/Modules/*'),
'@store/*': path.resolve(__dirname, 'src/store/*'),
'@modules': path.resolve(__dirname, 'src/store/Modules/index.ts'),
'@model': path.resolve(__dirname, 'src/model/index.ts'),
},
},
module: {
rules: [{
test: /\.vue$/,
use: {
loader: 'vue-loader',
options: {
compilerOptions: {
compatConfig: {
MODE: 2,
},
},
postcss: {
plugins: [cssNext()],
options: {
sourceMap: true,
},
},
cssSourceMap: true,
loaders: {
scss: ['vue-style-loader', 'css-loader', 'sass-loader', {
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, 'src/styles/variables.scss'),
esModule: true,
},
}],
ts: 'ts-loader',
},
},
},
}, {
test: /\.ts$/,
exclude: /node_modules/,
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
},
}, {
test: /\.(jpe?g|png|ttf|eot|woff(2)?)(\?[a-z0-9=&.]+)?$/,
use: 'base64-inline-loader?limit=1000&nametranslate=[nametranslate].[ext]',
}, {
test: /\.(svg)(\?[a-z0-9=&.]+)?$/,
use: 'base64-inline-loader?limit=4000&nametranslate=[nametranslate].[ext]',
},
],
},
plugins: [
new FaviconsWebpackPlugin({
logo: path.resolve(__dirname, 'src/assets/images/logo_M.png'),
persistentCache: true,
inject: true,
background: '#fff',
icons: {
android: false,
appleIcon: false,
appleStartup: false,
coast: false,
favicons: true,
firefox: false,
opengraph: false,
twitter: false,
yandex: false,
windows: false,
},
}),
new CopyWebpackPlugin([{
from: path.resolve(__dirname, 'src/assets'),
}]),
new ForkTsCheckerWebpackPlugin({
async: false,
watch: paths.appSrc,
tsconfig: paths.appTsConfig,
tslint: paths.appTsLint,
memoryLimit: 5000,
}),
],
};
module.exports = baseConfig;