- // Common configuration for webpacker loaded from config/webpacker.yml
-
- const { resolve } = require('path');
- const { env } = require('process');
- const { safeLoad } = require('js-yaml');
- const { readFileSync } = require('fs');
-
- const configPath = resolve('config', 'webpacker.yml');
- const settings = safeLoad(readFileSync(configPath), 'utf8')[env.RAILS_ENV || env.NODE_ENV];
-
- const themePath = resolve('config', 'themes.yml');
- const themes = safeLoad(readFileSync(themePath), 'utf8');
-
- function removeOuterSlashes(string) {
- return string.replace(/^\/*/, '').replace(/\/*$/, '');
- }
-
- function formatPublicPath(host = '', path = '') {
- let formattedHost = removeOuterSlashes(host);
- if (formattedHost && !/^http/i.test(formattedHost)) {
- formattedHost = `//${formattedHost}`;
- }
- const formattedPath = removeOuterSlashes(path);
- return `${formattedHost}/${formattedPath}/`;
- }
-
- const output = {
- path: resolve('public', settings.public_output_path),
- publicPath: formatPublicPath(env.CDN_HOST, settings.public_output_path),
- };
-
- module.exports = {
- settings,
- themes,
- env: {
- CDN_HOST: env.CDN_HOST,
- NODE_ENV: env.NODE_ENV,
- },
- output,
- };
|