Skip to content

Commit

Permalink
fix: path resolution when vite.root is set
Browse files Browse the repository at this point in the history
Resolves vituum#33
  • Loading branch information
Hagith committed Dec 10, 2023
1 parent a04632b commit 3a8860c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 15 deletions.
31 changes: 18 additions & 13 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
import { join } from 'node:path'
import pluginPages, { defaultConfig as defaultConfigPages } from './plugins/pages.js'
import pluginImports, { defaultConfig as defaultConfigImports } from './plugins/imports.js'
import { resolveInputPaths } from './utils/build.js'
import { merge } from './utils/common.js'
import { merge, normalizePath } from './utils/common.js'

const TEMPLATE_FORMATS = ['latte', 'twig', 'liquid', 'njk', 'hbs', 'pug']
const templateExtensions = (...additionalFormats) => ([...additionalFormats, ...TEMPLATE_FORMATS].join(','))

const defaultConfig = {
input: [
'./src/styles/*.{css,pcss,scss,sass,less,styl,stylus}',
'./src/scripts/*.{js,ts,mjs}'
],
formats: ['json', 'latte', 'twig', 'liquid', 'njk', 'hbs', 'pug'],
input: [],
formats: ['json', ...TEMPLATE_FORMATS],
pages: defaultConfigPages,
imports: defaultConfigImports
}

const defaultInput = [
'index.html',
'./src/pages/**/*.{json,latte,twig,liquid,njk,hbs,pug,html}',
'!./src/pages/**/*.{latte,twig,liquid,njk,hbs,pug,html}.json'
]

/**
* @param {import('vituum').UserConfig} pluginUserConfig
* @returns {import('vite').Plugin}
*/
const pluginCore = (pluginUserConfig) => {
const pagesRoot = normalizePath(pluginUserConfig.pages.root)
const pagesPath = normalizePath(pluginUserConfig.pages.dir)

const defaultInput = [
'index.html',
join(pagesPath, `**/*.{${templateExtensions('json', 'html')}}`),
'!' + join(pagesPath, `**/*.{${templateExtensions('html')}}.json`),
join(pagesRoot, 'styles/*.{css,pcss,scss,sass,less,styl,stylus}'),
join(pagesRoot, 'scripts/*.{js,ts,mjs}'),
...pluginUserConfig.input
]
let userConfig

return {
Expand All @@ -40,7 +46,6 @@ const pluginCore = (pluginUserConfig) => {
if (userConfig?.build?.rollupOptions?.input) {
userConfig.build.rollupOptions.input = resolveInputPaths({ paths: userConfig.build.rollupOptions.input, root: userConfig.root }, pluginUserConfig.formats)
} else {
defaultInput.push(...pluginUserConfig.input)
userConfig.build = userConfig.build || {}
userConfig.build.rollupOptions = userConfig.build.rollupOptions || {}
userConfig.build.rollupOptions.input = resolveInputPaths({ paths: defaultInput, root: userConfig.root }, pluginUserConfig.formats)
Expand Down
4 changes: 2 additions & 2 deletions src/plugins/pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ const plugin = (pluginUserConfig = {}) => {
normalizeBasePath: pluginUserConfig.normalizeBasePath
},
file => {
const pagesDir = normalizePath(relative(resolvedConfig.root, pluginUserConfig.dir))
const pagesRoot = pluginUserConfig.root ? normalizePath(relative(resolvedConfig.root, pluginUserConfig.root)) : null
const pagesDir = normalizePath(pluginUserConfig.dir)
const pagesRoot = normalizePath(pluginUserConfig.root)

if (file.includes(pagesDir)) {
return relative(pagesDir, file)
Expand Down

0 comments on commit 3a8860c

Please sign in to comment.