diff --git a/docs/guide/essentials/assets.md b/docs/guide/essentials/assets.md index 98e60936..27f396f6 100644 --- a/docs/guide/essentials/assets.md +++ b/docs/guide/essentials/assets.md @@ -46,7 +46,7 @@ import image from '~/assets/image.png'; ## `/public` Directory -Files inside `/public/` are copied into the output folder as-is, without being processed by WXT's bundler. +Files inside `/public/` are copied into the output folder as-is, without being processed by WXT's bundler. Here's how you access them: @@ -81,6 +81,10 @@ img.src = imageUrl; ::: +:::warning +Assets in the `public/` directory are **_not_** accessible in content scripts by default. To use a public asset in a content script, you must add it to your manifest's [`web_accessible_resources` array](/api/reference/wxt/type-aliases/UserManifest#web-accessible-resources). +::: + ## Inside Content Scripts Assets inside content scripts are a little different. By default, when you import an asset, it returns just the path to the asset. This is because Vite assumes you're loading assets from the same hostname. diff --git a/docs/guide/essentials/project-structure.md b/docs/guide/essentials/project-structure.md index d5634106..9992b5dd 100644 --- a/docs/guide/essentials/project-structure.md +++ b/docs/guide/essentials/project-structure.md @@ -60,14 +60,14 @@ After enabling it, your project structure should look like this: 📂 {rootDir}/ 📁 .output/ 📁 .wxt/ + 📁 modules/ + 📁 public/ 📂 src/ 📁 assets/ 📁 components/ 📁 composables/ 📁 entrypoints/ 📁 hooks/ - 📁 modules/ - 📁 public/ 📁 utils/ 📄 app.config.ts 📄 .env diff --git a/packages/wxt-demo/src/modules/auto-icons.ts b/packages/wxt-demo/modules/auto-icons.ts similarity index 100% rename from packages/wxt-demo/src/modules/auto-icons.ts rename to packages/wxt-demo/modules/auto-icons.ts diff --git a/packages/wxt-demo/src/modules/example.ts b/packages/wxt-demo/modules/example.ts similarity index 100% rename from packages/wxt-demo/src/modules/example.ts rename to packages/wxt-demo/modules/example.ts diff --git a/packages/wxt-demo/src/modules/i18n.ts b/packages/wxt-demo/modules/i18n.ts similarity index 100% rename from packages/wxt-demo/src/modules/i18n.ts rename to packages/wxt-demo/modules/i18n.ts diff --git a/packages/wxt-demo/src/modules/unocss.ts b/packages/wxt-demo/modules/unocss.ts similarity index 100% rename from packages/wxt-demo/src/modules/unocss.ts rename to packages/wxt-demo/modules/unocss.ts diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index 03dc263e..cd693a2f 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -89,14 +89,14 @@ export async function resolveConfig( srcDir, mergedConfig.entrypointsDir ?? 'entrypoints', ); - const modulesDir = path.resolve(srcDir, mergedConfig.modulesDir ?? 'modules'); if (await isDirMissing(entrypointsDir)) { logMissingDir(logger, 'Entrypoints', entrypointsDir); } + const modulesDir = path.resolve(root, mergedConfig.modulesDir ?? 'modules'); const filterEntrypoints = mergedConfig.filterEntrypoints?.length ? new Set(mergedConfig.filterEntrypoints) : undefined; - const publicDir = path.resolve(srcDir, mergedConfig.publicDir ?? 'public'); + const publicDir = path.resolve(root, mergedConfig.publicDir ?? 'public'); const typesDir = path.resolve(wxtDir, 'types'); const outBaseDir = path.resolve(root, mergedConfig.outDir ?? '.output'); const modeSuffixes: Record = { diff --git a/packages/wxt/src/types.ts b/packages/wxt/src/types.ts index 9383b575..3312075c 100644 --- a/packages/wxt/src/types.ts +++ b/packages/wxt/src/types.ts @@ -38,7 +38,7 @@ export interface InlineConfig { */ entrypointsDir?: string; /** - * @default "${config.srcDir}/modules" + * @default "${config.root}/modules" */ modulesDir?: string; /**