Skip to content

Commit 7e187e5

Browse files
committed
fix: respect dir option from module for ipx
resolves #817
1 parent f293072 commit 7e187e5

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/ipx.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const ipxSetup: ProviderSetup = async (providerOptions, moduleOptions) =>
3535
nitro.options._config.runtimeConfig = nitro.options._config.runtimeConfig || {}
3636
nitro.options._config.runtimeConfig.ipx = { ...ipxOptions }
3737
// Use relative path for built app
38-
ipxOptions.dir = relative(nitro.options.output.serverDir, nitro.options.output.publicDir)
38+
ipxOptions.dir = relative(nitro.options.output.serverDir, moduleOptions.dir)
3939
nitro.options.runtimeConfig.ipx = ipxOptions
4040
})
4141
nuxt.options.serverHandlers.push({

src/module.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { parseURL, withLeadingSlash } from 'ufo'
22
import { defineNuxtModule, addTemplate, addImports, createResolver, addComponent, addPlugin } from '@nuxt/kit'
3+
import { resolve } from 'pathe'
34
import { resolveProviders, detectProvider } from './provider'
45
import type { ImageProviders, ImageOptions, InputProvider, CreateImageOptions } from './types'
56

@@ -20,10 +21,10 @@ export interface ModuleOptions extends ImageProviders {
2021
export * from './types'
2122

2223
export default defineNuxtModule<ModuleOptions>({
23-
defaults: {
24+
defaults: nuxt => ({
2425
staticFilename: '[publicPath]/image/[hash][ext]',
2526
provider: 'auto',
26-
dir: '',
27+
dir: nuxt.options.dir.public,
2728
presets: {},
2829
domains: [] as string[],
2930
sharp: {},
@@ -40,7 +41,7 @@ export default defineNuxtModule<ModuleOptions>({
4041
internalUrl: '',
4142
providers: {},
4243
alias: {}
43-
},
44+
}),
4445
meta: {
4546
name: '@nuxt/image',
4647
configKey: 'image',
@@ -51,6 +52,9 @@ export default defineNuxtModule<ModuleOptions>({
5152
async setup (options, nuxt) {
5253
const resolver = createResolver(import.meta.url)
5354

55+
// fully resolve directory
56+
options.dir = resolve(nuxt.options.srcDir, options.dir)
57+
5458
// Normalize domains to hostname
5559
options.domains = options.domains.map((d) => {
5660
if (!d.startsWith('http')) { d = 'http://' + d }

0 commit comments

Comments
 (0)