diff --git a/src/media/config.js b/src/media/config.js index 718ecb9..08caefa 100644 --- a/src/media/config.js +++ b/src/media/config.js @@ -5,18 +5,22 @@ import esbuild from 'esbuild'; import compiler from '../constants.js' const outdir = path.join(process.cwd(), 'public', 'media'); -const mediaGlobs = '*.+(jpg|jpeg|png|gif|webp|svg|ico)'; +const mediaGlobs = '*.+(jpg|jpeg|png|gif|webp|svg|ico|js)'; const modules = { components: { path: path.join(process.cwd(), 'components'), src: globby(path.join(process.cwd(), 'components', '**', 'media', mediaGlobs)), }, + layouts: { + path: path.join(process.cwd(), 'layouts'), + src: globby(path.join(process.cwd(), 'layouts', '**', 'media', mediaGlobs)), + }, sites: { path: path.join(process.cwd(), 'sites'), src: globby([ path.join(process.cwd(), 'sites', '**', 'media', mediaGlobs), ]), - } + }, } /** @@ -82,6 +86,7 @@ const mediaConfig = { '.png': 'copy', '.svg': 'copy', '.webp': 'copy', + '.js': 'copy', }, logLevel: compiler.logLever, } diff --git a/src/scripts/config.js b/src/scripts/config.js index 9b80377..a3682af 100644 --- a/src/scripts/config.js +++ b/src/scripts/config.js @@ -268,13 +268,11 @@ async function processModule(filePath, cachedIds, registry, ids, envs) { let prependContent = `window.modules["${moduleId}"] = [function(require,module,exports){`; let appendContent = ''; - const fileName = `${moduleId}.js`; - // compile vue to JS before creating the magic string if (isVue) { try { const vueSFC = await vueSfcHandler({ - filename: fileName, + filename: filePath, source: code, extractCss: true, production: false, @@ -319,6 +317,14 @@ async function processModule(filePath, cachedIds, registry, ids, envs) { } } + if (!isJson) { + const transformed = await esbuild.transform(code, { + format: 'cjs', + target: 'es2015' + }); + code = transformed.code; + } + // magic-string for file content manipulation const s = new MagicString(code);