webpack.devwebpack.devconst merge = require('webpack-merge');
const webpack = require('webpack');
const path = require('path');
const CACHEDIR = path.resolve(__dirname, '..', 'node_modules', '.cache');
const getThreadLoader = name => ({
loader: 'thread-loader',
options: {
workerParallelJobs: 50,
poolRespawn: false,
name
}
});
const baseWebpackConfig = require('./webpack.base.config');
const devWebpackConfig = merge(baseWebpackConfig, {
// DEV config
mode: "development",
devtool: "cheap-module-eval-source-map", // подключаем сорс мапы для отладки вебкапа
devServer: {
// настройки дев серва
host: "localhost", // default
contentBase: baseWebpackConfig.externals.paths_build,
port: "8081", // 8080 по дефолту (у докера такой же), поэтому заменил порт
overlay: {
warnings: true,
errors: true
},
proxy: {
'/
': {
target: 'http://localhost:8081/region.html',
pathRewrite: {
'.*': ''
}
}
},
progress: true,
inline: true,
quiet: true,
historyApiFallback: true,
// hot: true,
open: true
},
// Пересборка при изменениях и уменьшение задержки перед ней
watch: true,
watchOptions: {
aggregateTimeout: 100
},
module: {
rules: [{
// правила для модулей
test: /\.js$/, // какие файлы обрабатывать
exclude: "/node_modules/", // исключаем файлы, тк библиотеки прогоняются через бабель
use: [{
loader: 'cache-loader',
options: {
cacheDirectory: path.resolve(CACHEDIR, 'js')
}
},
getThreadLoader('js'), {
loader: 'babel-loader',
options: {
cacheDirectory: path.resolve(CACHEDIR, 'babel')
}
}
]
},
{
test: /\.scss$/,
use: ['thread-loader', 'style-loader', 'css-loader', 'postcss-loader', 'sass-loader', 'import-glob-loader']
}
]
},
plugins: [
new webpack.SourceMapDevToolPlugin({
filename: "[file].map"
})
]
});
module.exports = new Promise((resolve, reject) => {
resolve(devWebpackConfig)
})
**webpack.baseconst path = require('path')
const fs = require('fs')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const {
VueLoaderPlugin
} = require('vue-loader')
const CopyWebpackPlugin = require('copy-webpack-plugin')
// Переменные для путей
const PATH_SRC = path.join(__dirname, './src')
const PATH_BUILD = path.join(__dirname, './build')
const PATH_ASSETS = path.join(__dirname, './src/assets/')
// Переменные для HtmlWebpackPlugin
const PAGES_DIR = path.join(__dirname, './src/pages') // путь к html-файлам
const PAGES = fs.readdirSync(PAGES_DIR).filter(fileName => fileName.endsWith('.html')) //