handle special cases where php file is imported

This commit is contained in:
Harald Bamberger
2025-10-23 17:07:12 +02:00
parent 7c3b717542
commit 1e082792bb
+24 -3
View File
@@ -13,20 +13,40 @@ import terser from '@rollup/plugin-terser';
import json from '@rollup/plugin-json';
const fhcbasepath = import.meta.dirname;
let apps = {};
let curapp = null;
function FhcResolver () {
return {
name: 'fhc-resolver', // this name will show up in logs and errors
buildStart (options) {
//console.log('options: ' + JSON.stringify(options));
//console.log('apps: ' + JSON.stringify(apps));
curapp = apps[options.input[0]];
//console.log('curapp: ' + curapp);
},
resolveId ( source, importer, options ) {
//console.log('options: ' + JSON.stringify(options));
//console.log('BH-FHC-BASEPATH: ' + fhcbasepath);
if( source.includes('vueDatepicker.js.php') ) {
return {id: 'vueDatepicker.js.php', external: 'relative'};
}
if( source.includes('index.ci.php') ) {
return { id: '../' + source, external: 'relative'};
//console.log('source: ' + source + ' curapp: ' + curapp + ' importer: ' + importer);
let source_abs = fhcbasepath + '/' + source.replace(/(\.\.\/)+/, '');
let source_rel = path.relative(path.dirname(curapp), source_abs);
//console.log('SOURCE_ABS:' + source_abs + 'APP: ' + curapp + 'SOURCE_REL: ' + source_rel);
return { id: source_rel, external: 'relative'};
}
if( source.includes('.php') ) {
return false;
if( source.includes('.php')) {
console.log('source: ' + source + ' curapp: ' + curapp + ' importer: ' + importer);
let source_abs = path.resolve(path.dirname(importer), source);
if(source_abs.match(/\/FHC-Core-[^\/]+\/public\//)) {
source_abs = fhcbasepath + source_abs.replace(/^.+?\/(FHC-Core-[^\/]+)\/public\//, '/public/extensions/$1/');
}
let source_rel = path.relative(path.dirname(curapp), source_abs);
console.log('SOURCE_ABS:' + source_abs + 'APP: ' + curapp + 'SOURCE_REL: ' + source_rel);
return { id: source_rel, external: 'relative'};
}
//console.log('source: ' + source + ' options.isEntry: ' + options.isEntry + ' importer: ' + importer);
if(importer === undefined) {
@@ -108,6 +128,7 @@ export default globSync('public/**/js/apps/**/*.js', {follow: false, realpath: f
//console.log('BHTEST: ' + tmp);
const basepath = tmp.replace(/\/public\/js\/.*/, '/public/js/');
const outputfile = tmp.replace(/public\//, 'public/dist/');
apps[tmp] = outputfile;
//console.log('OUTFILE: ' + outputfile);
let cssfile = path.basename(tmp.replace(/\.js/, '.css'));
//console.log('cssfile: ' + cssfile);