WXT浏览器开发中文教程(2)----WXT项目目录结构详解

前言

大家好,我是倔强青铜三 。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

项目结构

WXT 遵循严格的项目结构。默认情况下,它是一个扁平的文件夹结构,如下所示:

html 复制代码
📂 {rootDir}/
   📁 .output/
   📁 .wxt/
   📁 assets/
   📁 components/
   📁 composables/
   📁 entrypoints/
   📁 hooks/
   📁 modules/
   📁 public/
   📁 utils/
   📄 .env
   📄 .env.publish
   📄 app.config.ts
   📄 package.json
   📄 tsconfig.json
   📄 web-ext.config.ts
   📄 wxt.config.ts

以下是这些文件和目录的简要说明:

  • .output/: 所有构建文件都将放在这里
  • .wxt/: 由 WXT 生成,包含 TS 配置
  • assets/: 包含所有应由 WXT 处理的 CSS、图像和其他资源
  • components/: 默认自动导入,包含 UI 组件
  • composables/: 默认自动导入,包含 Vue 的可组合函数
  • entrypoints/: 包含所有将被打包到扩展中的入口点
  • hooks/: 默认自动导入,包含 React 和 Solid 的钩子
  • public/: 包含任何希望直接复制到输出文件夹而不被 WXT 处理的文件
  • utils/: 默认自动导入,包含项目中通用的实用程序
  • .env: 包含环境变量
  • .env.publish: 包含发布的环境变量
  • app.config.ts: 包含运行时配置
  • package.json: 你的包管理器使用的标准文件
  • tsconfig.json: 告诉 TypeScript 如何行为的配置
  • web-ext.config.ts: 配置浏览器启动
  • wxt.config.ts: WXT 项目的主配置文件

添加 src/ 目录

许多开发者喜欢有一个 src/ 目录来分离源代码和配置文件。可以在 wxt.config.ts 文件中启用它:

typescript 复制代码
export default defineConfig({
  srcDir: 'src',
});

启用后,项目结构应如下所示:

html 复制代码
📂 {rootDir}/
   📁 .output/
   📁 .wxt/
   📂 src/
      📁 assets/
      📁 components/
      📁 composables/
      📁 entrypoints/
      📁 hooks/
      📁 modules/
      📁 public/
      📁 utils/
      📄 app.config.ts
   📄 .env
   📄 .env.publish
   📄 package.json
   📄 tsconfig.json
   📄 web-ext.config.ts
   📄 wxt.config.ts

自定义其他目录

可以配置以下目录:

typescript 复制代码
export default defineConfig({
  // 相对于项目根目录
  srcDir: "src",             // 默认值: "."
  outDir: "dist",            // 默认值: ".output"
  // 相对于 srcDir
  entrypointsDir: "entries", // 默认值: "entrypoints"
  modulesDir: "wxt-modules", // 默认值: "modules"
  publicDir: "static",       // 默认值: "public"
})

可以使用绝对路径或相对路径。

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

相关推荐
知识分享小能手13 分钟前
CSS3学习教程,从入门到精通,CSS3 定位布局页面知识点及案例代码(18)
前端·javascript·css·学习·html·css3·html5
Python私教25 分钟前
Vue 在现代 Web 开发中的优势
前端·javascript·vue.js
Front_Yue34 分钟前
Unity 与 JavaScript 的通信交互:实现跨平台的双向通信
javascript·3d·unity
fridayCodeFly34 分钟前
<KeepAlive>和<keep-alive>有什么区别
前端·javascript·vue.js
hikktn38 分钟前
【开源宝藏】30天学会CSS - DAY8 第八课 跳动的爱心动画
前端·css·开源
南蓝39 分钟前
【node】如何用 pm2 管理 node 项目
前端
寻梦人1213841 分钟前
Vite管理的Vue3项目中monaco editer的使用以及组件封装
前端·javascript·vue.js·vscode
瓶子丶41 分钟前
企业微信通讯录效果?拿捏!!!
vue.js·uni-app
头发尚存的猿小二1 小时前
Linux--环境变量
前端·javascript·chrome
uuuuu17116441 小时前
HTML5 canvas圆形泡泡动画背景特效
前端·html·html5