asb_cloud_front/webpack.config.js

56 lines
2.5 KiB
JavaScript
Raw Normal View History

const { merge } = require('webpack-merge')
const process = require('process')
const colors = require('colors')
const path = require('path')
const fs = require('fs')
colors.enable()
const baseConfigPath = path.resolve(__dirname, 'webpack.config.base.js')
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))
}