26 lines
1.3 KiB
JavaScript
26 lines
1.3 KiB
JavaScript
|
|
// Copie dans public/vendor/ les bibliothèques que les pages vitrine chargent
|
||
|
|
// par <script> classique (étape 14) : mêmes fichiers que sur jsDelivr, mais
|
||
|
|
// servis par le portail — aucune adresse IP de visiteur envoyée à un CDN.
|
||
|
|
import { cpSync, mkdirSync, rmSync } from 'node:fs';
|
||
|
|
import { dirname } from 'node:path';
|
||
|
|
|
||
|
|
const fichiers = {
|
||
|
|
'xterm/xterm.js': '@xterm/xterm/lib/xterm.js',
|
||
|
|
'xterm/xterm.css': '@xterm/xterm/css/xterm.css',
|
||
|
|
'xterm/addon-fit.js': '@xterm/addon-fit/lib/addon-fit.js',
|
||
|
|
'codemirror/codemirror.js': 'codemirror/lib/codemirror.js',
|
||
|
|
'codemirror/codemirror.css': 'codemirror/lib/codemirror.css',
|
||
|
|
'codemirror/closebrackets.js': 'codemirror/addon/edit/closebrackets.js',
|
||
|
|
'codemirror/matchbrackets.js': 'codemirror/addon/edit/matchbrackets.js',
|
||
|
|
};
|
||
|
|
for (const mode of ['css', 'htmlmixed', 'javascript', 'python', 'shell', 'sql', 'xml']) {
|
||
|
|
fichiers[`codemirror/mode/${mode}.js`] = `codemirror/mode/${mode}/${mode}.js`;
|
||
|
|
}
|
||
|
|
|
||
|
|
rmSync('public/vendor', { recursive: true, force: true });
|
||
|
|
for (const [cible, source] of Object.entries(fichiers)) {
|
||
|
|
mkdirSync(dirname(`public/vendor/${cible}`), { recursive: true });
|
||
|
|
cpSync(`node_modules/${source}`, `public/vendor/${cible}`);
|
||
|
|
}
|
||
|
|
console.log(`public/vendor : ${Object.keys(fichiers).length} fichiers copiés`);
|