You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
// Common configuration for webpacker loaded from config/webpacker.yml |
|
|
|
const { join, resolve } = require('path'); |
|
const { env } = require('process'); |
|
const { safeLoad } = require('js-yaml'); |
|
const { readFileSync } = require('fs'); |
|
|
|
const configPath = resolve('config', 'webpacker.yml'); |
|
const loadersDir = join(__dirname, 'loaders'); |
|
const settings = safeLoad(readFileSync(configPath), 'utf8')[env.NODE_ENV]; |
|
|
|
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.ASSET_HOST, settings.public_output_path), |
|
}; |
|
|
|
module.exports = { |
|
settings, |
|
env, |
|
loadersDir, |
|
output, |
|
};
|
|
|