2022-10-05 15:28:27 +05:00
|
|
|
const { merge } = require('webpack-merge')
|
|
|
|
const process = require('process')
|
|
|
|
const colors = require('colors')
|
2022-06-09 17:51:41 +05:00
|
|
|
const path = require('path')
|
2022-10-05 15:28:27 +05:00
|
|
|
const fs = require('fs')
|
2022-06-09 17:51:41 +05:00
|
|
|
|
2022-10-05 15:28:27 +05:00
|
|
|
colors.enable()
|
2022-06-09 17:51:41 +05:00
|
|
|
|
2022-10-05 15:28:27 +05:00
|
|
|
const baseConfigPath = path.resolve(__dirname, 'webpack.config.base.js')
|
2022-06-09 17:51:41 +05:00
|
|
|
|
2022-10-05 15:28:27 +05:00
|
|
|
const quit = (error = false) => {
|
|
|
|
console.log('Exiting...')
|
|
|
|
process.exit(error ? 1 : 0)
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = (env) => {
|
|
|
|
if (!fs.existsSync(path.resolve(__dirname, 'src/services/api'))) {
|
|
|
|
console.error(`Error: Services not found! Generate it first!`.bold.red)
|
|
|
|
console.info('To generate services you can use node scripts.')
|
|
|
|
console.info('For example: `npm run oug_dev` for generate services from dev-server.')
|
|
|
|
|
|
|
|
console.error(`Ошибка: Сервисы не найдены! Сначала сгенерируйте их!`.bold.red)
|
|
|
|
console.info('Для генерации сервисов воспользуйтесь node-скриптами.')
|
|
|
|
console.info('Например: `npm run oug_dev` для генерации от dev-сервера.')
|
|
|
|
quit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!fs.existsSync(baseConfigPath)) {
|
|
|
|
console.error(`Error: Base webpack config file not found!`.bold.red)
|
|
|
|
console.error(`Ошибка: базовый конфигурационный файл webpack не найден!`.bold.red)
|
|
|
|
quit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
const mode = String(env.ENV)
|
|
|
|
const configPath = path.resolve(__dirname, `webpack.config.${env.ENV}.js`)
|
|
|
|
|
|
|
|
if (!fs.existsSync(configPath)) {
|
|
|
|
console.error(`Error: Webpack config file for mode "${mode.underline}" not found!`.bold.red)
|
|
|
|
console.error(`Ошибка: конфигурационный файл webpack для режима "${mode.underline}" не найден!`.bold.red)
|
|
|
|
quit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
console.info('Make sure you update your npm packages and services!'.bold.yellow)
|
|
|
|
console.info('Убедитесь, что вы обновили npm-пакеты и сервисы!'.bold.yellow)
|
|
|
|
|
|
|
|
console.info(`Building in mode: ${String(env.ENV).blue.bold}`)
|
|
|
|
console.info(`Using base config: ${baseConfigPath.underline.italic}`)
|
|
|
|
console.info(`Using main config: ${configPath.underline.italic}`)
|
|
|
|
|
|
|
|
console.info(`Собрка в режиме: ${String(env.ENV).blue.bold}`)
|
|
|
|
console.info(`Базовый конфигурационный файл: ${baseConfigPath.underline.italic}`)
|
|
|
|
console.info(`Режимный конфигурационный файл: ${configPath.underline.italic}`)
|
|
|
|
|
|
|
|
return merge(require(baseConfigPath), require(configPath))
|
2022-06-09 17:51:41 +05:00
|
|
|
}
|