UNPKG

@quasar/app-webpack

Version:

Quasar Framework App CLI with Webpack

32 lines (26 loc) 1.11 kB
const path = require('node:path') const { pathToFileURL } = require('node:url') const fse = require('fs-extra') const dirnameReplacement = '__quasar_inject_dirname__' const filenameReplacement = '__quasar_inject_filename__' const importMetaUrlReplacement = '__quasar_inject_import_meta_url__' module.exports.quasarEsbuildInjectReplacementsDefine = { __dirname: dirnameReplacement, __filename: filenameReplacement, 'import.meta.url': importMetaUrlReplacement } module.exports.quasarEsbuildInjectReplacementsPlugin = { name: 'quasar:inject-replacements', setup (build) { build.onLoad({ filter: /\.[cm]?[jt]s$/ }, args => { const contents = fse.readFileSync(args.path, 'utf8') const prefix = `const ${ dirnameReplacement } = ${ JSON.stringify(path.dirname(args.path)) };` + `const ${ filenameReplacement } = ${ JSON.stringify(args.path) };` + `const ${ importMetaUrlReplacement } = ${ JSON.stringify(pathToFileURL(args.path).href) };` return { loader: args.path.endsWith('ts') ? 'ts' : 'js', contents: prefix + contents } }) } }