sforkowany z mirror/soapbox
48 wiersze
1.3 KiB
JavaScript
48 wiersze
1.3 KiB
JavaScript
const { join } = require('path');
|
|
const { env } = require('process');
|
|
|
|
const settings = {
|
|
source_path: 'app',
|
|
public_root_path: 'static',
|
|
public_output_path: getPublicOutputPath(),
|
|
cache_path: 'tmp/cache/webpacker',
|
|
resolved_paths: [],
|
|
static_assets_extensions: [ '.jpg', '.jpeg', '.png', '.tiff', '.ico', '.svg', '.gif', '.eot', '.otf', '.ttf', '.woff', '.woff2' ],
|
|
extensions: [ '.mjs', '.js', '.sass', '.scss', '.css', '.module.sass', '.module.scss', '.module.css', '.png', '.svg', '.gif', '.jpeg', '.jpg' ],
|
|
};
|
|
|
|
function removeOuterSlashes(string) {
|
|
return string.replace(/^\/*/, '').replace(/\/*$/, '');
|
|
}
|
|
|
|
function getPublicOutputPath() {
|
|
if (env.NODE_ENV === 'test') {
|
|
return 'packs-test';
|
|
}
|
|
|
|
return 'packs';
|
|
}
|
|
|
|
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: join(__dirname, '..', 'static', settings.public_output_path),
|
|
publicPath: formatPublicPath(env.CDN_HOST, settings.public_output_path),
|
|
};
|
|
|
|
module.exports = {
|
|
settings,
|
|
env: {
|
|
CDN_HOST: env.CDN_HOST,
|
|
NODE_ENV: env.NODE_ENV,
|
|
},
|
|
output,
|
|
};
|