{"_id":"vue3-structure-builder","_rev":"101-66bab9892e3422e9ecc78bb4f8126256","name":"vue3-structure-builder","dist-tags":{"latest":"1.1.11"},"versions":{"1.0.0":{"name":"vue3-structure-builder","version":"1.0.0","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"author":"","license":"MIT","_id":"vue3-structure-builder@1.0.0","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"dist":{"shasum":"71c5e39b01e1437a5fbb85df77cdc87ee5a3568a","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.0.0.tgz","fileCount":11,"integrity":"sha512-goEayR7Dw/Zma/2MGZqNeAlxfcEh0RDUkSrXwQ7B3KAfDRR0lOJ+ks03ML5InMQBljqvvJY9bx8NJo/ND2AJUQ==","signatures":[{"sig":"MEUCIGMHz+Cxybnh/8yNvM8FKn7qBWLeD2xXg0aG1YdaJSE7AiEA98sU81GJPP4zbDAF3AjDzw+yjibANZF9Uqk+hMDgdfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88434},"main":"index.js","type":"module","gitHead":"710b02d6fe507ca0d10b91702913594f8a182888","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"20.10.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.21.0","rollup":"^3.0.0","globals":"^16.0.0","@eslint/js":"^9.21.0","rollup-plugin-terser":"^7.0.0","@rollup/plugin-commonjs":"^22.0.0","@rollup/plugin-node-resolve":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-structure-builder_1.0.0_1741091997669_0.679145443747043","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"vue3-structure-builder","version":"1.1.0","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"license":"MIT","_id":"vue3-structure-builder@1.1.0","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"dist":{"shasum":"4c35f3bca5447a9e0ed01a645ebe291afd950645","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.1.0.tgz","fileCount":3,"integrity":"sha512-Ms3hupLHI7KJAcKNatwuPKShAkxOoUmAbKPaszKtlI50FHrHue4qef3OxvAZyja86o8PrO3TWBmYbgZXkbLPaA==","signatures":[{"sig":"MEYCIQCDT09M91qQXDTo/Vw+uU3PbcHpo0RVHnnk+zUZvpWARQIhAM9WZQvoEtK6nXdrglZIpJuvJQ+2yN8HzeACQSAehWgu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2574},"main":"index.js","type":"module","gitHead":"710b02d6fe507ca0d10b91702913594f8a182888","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"20.10.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.21.0","rollup":"^3.0.0","globals":"^16.0.0","@eslint/js":"^9.21.0","rollup-plugin-terser":"^7.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-node-resolve":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-structure-builder_1.1.0_1744729361213_0.890770180441868","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"vue3-structure-builder","version":"1.1.2","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"license":"MIT","_id":"vue3-structure-builder@1.1.2","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"dist":{"shasum":"edb76375875d97ce786be2b7b33f3990f39c5927","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.1.2.tgz","fileCount":13,"integrity":"sha512-Wu/jCkXPXB8LvVxP+6lFJce3l2/71C5565rIPMzxMbTKlCfuXv1wtQ0NNOqJxr5wWV2Geew0Ndk5rkSzn2JGgw==","signatures":[{"sig":"MEYCIQC5wwA026VpdYAcLsxriC295wzftQoMCglt/Z972O7JeQIhAOiIBZKIqEdlB9NJFI7KvG78swiYCN3r938rp0Usvvjo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57384},"main":"index.js","type":"module","gitHead":"710b02d6fe507ca0d10b91702913594f8a182888","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"_npmVersion":"10.2.3","directories":{},"_nodeVersion":"20.10.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.21.0","rollup":"^3.0.0","globals":"^16.0.0","@eslint/js":"^9.21.0","rollup-plugin-terser":"^7.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-node-resolve":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-structure-builder_1.1.2_1744729713695_0.0953111126361268","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"vue3-structure-builder","version":"1.1.3","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"license":"MIT","_id":"vue3-structure-builder@1.1.3","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"dist":{"shasum":"5b7a6708b1ec68a47f238e537c6c03e621e0a546","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.1.3.tgz","fileCount":14,"integrity":"sha512-s/gYqqp4qWuLMRq1iKuxPUxRadpd0cUhusXfZXX/y5UIY86xFynNXw4xZB35KYM/racQQd2mYHszIvuUocO6eQ==","signatures":[{"sig":"MEUCIQDHRKm9L7ZXs1+wp8y7kCw4ZE8mHLznrRIh8tySVQlP2gIgaN1dXwc9vZfZMWAojl5yHz8Qm8CyBXCpkUORLfyGya0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64232},"main":"index.js","type":"module","gitHead":"12d34bfde6c7c98f93ccb809e95a48012e8d843c","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"_npmVersion":"10.2.3","description":"`vue3-structure-builder` is a tool that helps developers quickly generate a modular and scalable file structure for Vue 3 projects. By defining a module structure in a `schema.js` file, this tool automatically generates directories, components, pages, sto","directories":{},"_nodeVersion":"20.10.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.21.0","rollup":"^3.0.0","globals":"^16.0.0","@eslint/js":"^9.21.0","rollup-plugin-terser":"^7.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-node-resolve":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-structure-builder_1.1.3_1744731218869_0.2535789450742407","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"vue3-structure-builder","version":"1.1.4","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"license":"MIT","_id":"vue3-structure-builder@1.1.4","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"dist":{"shasum":"50256fb78517a55856556f41ec607cec137545c8","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.1.4.tgz","fileCount":14,"integrity":"sha512-HvXy2uSLlQ8pV6W0KHX34f5Pns0mW81Rj8mHcH5YDJx6rLsScOzZL33zjMR263t5do+8ZwrXIXDlCnP6TyHWjQ==","signatures":[{"sig":"MEUCICQ31hI9E0PRzkCW5iDvzS37luHjw1jHKr/YAE0RlINXAiEAr8/ITJh82GZV9fmiAI+DXcWtCRpgz+r23g1a8YTQl/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64477},"main":"index.js","type":"module","gitHead":"16f3e004df3d68c21643366ba484e84d8f0b334a","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"_npmVersion":"10.2.3","description":"`vue3-structure-builder` is a tool that helps developers quickly generate a modular and scalable file structure for Vue 3 projects. By defining a module structure in a `schema.js` file, this tool automatically generates directories, components, pages, sto","directories":{},"_nodeVersion":"20.10.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.21.0","rollup":"^3.0.0","globals":"^16.0.0","@eslint/js":"^9.21.0","rollup-plugin-terser":"^7.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-node-resolve":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-structure-builder_1.1.4_1744731884738_0.42673700460147534","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"vue3-structure-builder","version":"1.1.5","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"license":"MIT","_id":"vue3-structure-builder@1.1.5","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"dist":{"shasum":"49954d132a0ab584a1c944613d544de1e2d04de4","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.1.5.tgz","fileCount":14,"integrity":"sha512-C8Dfh/eE9frHt1KxAONiwzO6pRmXX1x6ZX1HWGtdg+WUEzoUBkG6/N49mFMvuTZjmLmns6k34YeaRvVz3uXl2Q==","signatures":[{"sig":"MEUCIHrQb8iTTBwq/DxaF1ievgEWheKaFSsSVL+7uDsf0hl4AiEAwRmxE7enWviNDTbTc8ZVCSJ5Ms2Y84wp78geFSvCNkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64172},"main":"index.js","type":"module","gitHead":"6557c278b014024dc694a4ae03bb823a5af1916f","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"_npmVersion":"10.2.3","description":"`vue3-structure-builder` is a tool that helps developers quickly generate a modular and scalable file structure for Vue 3 projects. By defining a module structure in a `schema.js` file, this tool automatically generates directories, components, pages, sto","directories":{},"_nodeVersion":"20.10.0","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.21.0","rollup":"^3.0.0","globals":"^16.0.0","@eslint/js":"^9.21.0","rollup-plugin-terser":"^7.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-node-resolve":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-structure-builder_1.1.5_1744803667221_0.8824878163308099","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"vue3-structure-builder","version":"1.1.11","description":"`vue3-structure-builder` is a tool that helps developers quickly generate a modular and scalable file structure for Vue 3 projects. By defining a module structure in a `schema.js` file, this tool automatically generates directories, components, pages, sto","type":"module","main":"index.js","scripts":{"build":"rollup -c","postinstall":"node postinstall.js"},"license":"MIT","dependencies":{"fs":"^0.0.1-security","path":"^0.12.7"},"devDependencies":{"@eslint/js":"^9.21.0","eslint":"^9.21.0","globals":"^16.0.0","@rollup/plugin-commonjs":"^23.0.0","@rollup/plugin-node-resolve":"^13.0.0","rollup":"^3.0.0","rollup-plugin-terser":"^7.0.0"},"keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"_id":"vue3-structure-builder@1.1.11","gitHead":"7ecab9b673efac57cee749ac11232ffa144b167c","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-M6Pwq1m0x1QHl7RdwzSQmhfcHU5+O0iONPT9r4DlJMquOVjHWCJ6+j+4QzTLQ6GytIarZpA2WapR9SOOXeLNeg==","shasum":"dd782a06fcbe0e5bc1548771c86f9e4f9ef864a6","tarball":"https://registry.npmjs.org/vue3-structure-builder/-/vue3-structure-builder-1.1.11.tgz","fileCount":14,"unpackedSize":64082,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICuP7QLGcHChqQa8eZFrAv6y0xtLASDjyRzzdOj5Mw5FAiBCm5Ss2AhssGg0nC4vUUz8q+/3KDJyMljBEQm8cOZXKg=="}]},"_npmUser":{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"},"directories":{},"maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vue3-structure-builder_1.1.11_1744892850457_0.8275857454809219"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-04T12:39:57.668Z","modified":"2025-04-17T12:27:30.809Z","1.0.0":"2025-03-04T12:39:57.831Z","1.0.1":"2025-03-04T12:53:10.035Z","1.0.2":"2025-03-04T13:05:10.700Z","1.0.3":"2025-03-04T13:09:31.276Z","1.0.4":"2025-03-04T13:14:30.464Z","1.0.5":"2025-03-04T13:18:02.135Z","1.0.6":"2025-03-04T13:22:59.136Z","1.0.7":"2025-03-04T13:29:13.375Z","1.0.8":"2025-03-04T13:30:03.143Z","1.0.9":"2025-03-04T13:36:59.412Z","1.0.10":"2025-03-04T13:38:39.168Z","1.0.11":"2025-03-05T11:42:21.267Z","1.0.12":"2025-03-05T11:44:24.774Z","1.0.13":"2025-03-05T11:46:13.238Z","1.0.14":"2025-03-05T11:51:49.558Z","1.0.15":"2025-03-05T11:53:46.101Z","1.0.16":"2025-03-05T11:56:22.865Z","1.0.17":"2025-03-05T11:59:12.968Z","1.0.18":"2025-03-05T12:21:48.729Z","1.0.19":"2025-03-05T12:28:42.339Z","1.0.20":"2025-03-05T12:34:42.366Z","1.0.21":"2025-03-05T12:41:54.072Z","1.0.22":"2025-04-15T13:04:46.079Z","1.0.23":"2025-04-15T13:25:47.258Z","1.0.24":"2025-04-15T13:27:48.624Z","1.0.25":"2025-04-15T13:31:57.032Z","1.0.26":"2025-04-15T13:35:07.969Z","1.0.27":"2025-04-15T14:16:21.026Z","1.0.28":"2025-04-15T14:21:26.001Z","1.0.29":"2025-04-15T14:28:15.068Z","1.0.30":"2025-04-15T14:30:00.945Z","1.0.31":"2025-04-15T14:31:25.683Z","1.0.32":"2025-04-15T14:33:10.190Z","1.0.33":"2025-04-15T14:37:02.855Z","1.0.34":"2025-04-15T14:39:36.241Z","1.0.35":"2025-04-15T14:49:01.235Z","1.0.36":"2025-04-15T14:50:54.807Z","1.0.37":"2025-04-15T14:52:22.735Z","1.0.38":"2025-04-15T14:54:04.655Z","1.0.39":"2025-04-15T14:57:22.868Z","1.0.40":"2025-04-15T14:58:33.868Z","1.0.41":"2025-04-15T15:01:26.344Z","1.1.0":"2025-04-15T15:02:41.497Z","1.1.1":"2025-04-15T15:07:20.273Z","1.1.2":"2025-04-15T15:08:33.907Z","1.1.3":"2025-04-15T15:33:39.089Z","1.1.4":"2025-04-15T15:44:44.920Z","1.1.5":"2025-04-16T11:41:07.413Z","1.1.6":"2025-04-17T11:44:15.435Z","1.1.7":"2025-04-17T11:45:11.487Z","1.1.8":"2025-04-17T11:47:30.746Z","1.1.9":"2025-04-17T12:03:18.407Z","1.1.10":"2025-04-17T12:13:30.242Z","1.1.11":"2025-04-17T12:27:30.640Z"},"license":"MIT","keywords":["vue-modules","vue3-modules-ts","vue-architecture","architecture","vue-clices","vue-clices-modules","vue3","vue3-modular-architecture","vue-structure","modular-design","javascript-modules","vue3-module-development","vue-module-development"],"description":"`vue3-structure-builder` is a tool that helps developers quickly generate a modular and scalable file structure for Vue 3 projects. By defining a module structure in a `schema.js` file, this tool automatically generates directories, components, pages, sto","maintainers":[{"name":"kareem-elgamal","email":"kareemelgamal741@outlook.com"}],"readme":"# **Vue3 Structure Builder**\n\n`vue3-structure-builder` is a tool that helps developers quickly generate a modular and scalable file structure for Vue 3 projects. By defining a module structure in a `schema.js` file, this tool automatically generates directories, components, pages, stores, routes, and i18n configurations.\n\nThis package makes it easy to scaffold out complex Vue 3 project structures, saving you time and effort while ensuring consistency in how modules, stores, components, and routes are set up.\n\n---\n\n## **Features**\n- Automatically generates a Vue 3 project structure based on a `schema.js` file.\n- Supports generating **Pinia store** files, **i18n** localization files, dynamic **routing**, and **layouts**.\n- Simplifies the creation of complex nested modules and routes.\n- Built for Vue 3 projects, supporting TypeScript.\n---\n\n## **Installation**\n\nTo install the package in your Vue 3 project:\n\n```bash\nnpm install vue3-structure-builder\n```\n\n---\n\n## **Usage**\n\n### **Generate the Schema File**\nTo start, generate the default `schema.js` file using the following command:\n\n```bash\nnpm run out-schema\n```\n\nThis command will create a `schema.js` file in the root directory of your project. It will look something like this:\n\n```javascript\nexport default [\n  {\n    name: \"module1\",\n    store: true,         // Whether the module has a Pinia store\n    i18n: false,         // Whether the module has i18n support\n    components: [\"CompA\", \"CompB\"], // Component names for this module\n    page: [\"Home\", \"About\"], // Page names for this module\n    children: [          // Nested child modules (if any)\n      {\n        name: \"childModule1\",\n        store: false,\n        i18n: true,\n        components: [\"ChildComp1\"],\n        page: [\"ChildPage\"],\n        children: null\n      }\n    ]\n  }\n];\n```\n\n### **Generate the Project Structure**\nOnce you’ve defined your module structure in `schema.js`, run the following command to generate the full project structure based on the schema:\n\n```bash\nnpm run init-modules\n```\n\nThis will:\n- Create the necessary directories for each module.\n- Generate `.vue` components inside the `components/` directory for each module.\n- Set up the Pinia store files (`index.ts`) for modules with `store: true`.\n- Configure i18n files (`en.json` , `ar.json` ) if `i18n: true` is defined.\n- Automatically generate router files based on module names and nested routes.\n\n---\n\n## **Generated Structure Example**\nBased on the `schema.js` above, running `npm run init-modules` will generate a directory structure like:\n\n```\nsrc/\nmodules/\n├── module1/\n│   ├── components/\n│   │   ├── CompA.vue\n│   │   └── CompB.vue\n│   ├── pages/\n│   │   ├── Home.vue\n│   │   └── About.vue\n│   ├── store/\n│   │   └── index.ts        # Pinia store for this module\n│   ├── i18n/\n│   │   └── en.json         # i18n support if i18n: true\n│   └── routes.ts           # Dynamic router setup\n└── childModule1/\n    ├── components/\n    │   └── ChildComp1.vue\n    ├── pages/\n    │   └── ChildPage.vue\n    ├── store/\n    │   └── index.ts\n    ├── i18n/\n    │   └── en.json\n    └── routes.ts\n```\n\n---\n\n## **Schema File Breakdown**\nThe `schema.js` file defines the structure of your project. Each module in the array has the following properties:\n\n- **`name`**: The name of the module (also used as the directory name).\n- **`store`**: If `true`, a Pinia store (`index.ts`) will be generated for the module.\n- **`i18n`**: If `true`, an i18n localization file (`en.json`) will be generated.\n- **`components`**: An array of component names to be generated in the `components/` directory.\n- **`page`**: An array of page names to be generated in the `pages/` directory.\n- **`children`**: An array of child modules that will be nested inside the parent module (recursively).\n\n#### Example schema for a module with a Pinia store and i18n support:\n```javascript\n{\n  name: \"dashboard\",\n  store: true,\n  i18n: true,\n  components: [\"DashboardComp\", \"Sidebar\"],\n  page: [\"index\"],\n  children: null\n}\n```\n\nThis will create:\n- **Components**: `DashboardComp.vue`, `Sidebar.vue`\n- **Pages**: `index.vue`\n- **Store**: `index.ts` (Pinia store setup)\n- **i18n**: `en.json`\n\n---\n\n## **Customization**\n\n### **Customizing File Extensions**\nYou can customize the extensions of the generated files. For example, if you prefer to use `.jsx` for components, modify your `schema.js` to:\n\n```javascript\n{\n  name: \"dashboard\",\n  components: [\"DashboardComp.jsx\", \"Sidebar.jsx\"],\n  page: [\"Index.jsx\"],\n  store: true,\n  children: null\n}\n```\n\n## **Troubleshooting**\n\n### **Common Issues**\n\n#### Missing `schema.js` File\nEnsure the `schema.js` file exists in the root directory. The builder depends on this file to generate the structure.\n\n#### Missing Dependencies\nIf the tool isn’t working as expected, ensure all dependencies are installed by running:\n\n```bash\nnpm install\n```\n#### Permission Issues\nIf you encounter permission errors, ensure your terminal has sufficient write permissions for the directories.\n\n#### Invalid Schema Format\nMake sure your `schema.js` file is correctly formatted. If there are syntax errors, the tool will fail.\n\n#### Existing Router, Router Guard, or i18n Files\nBefore running the tool, ensure that the following files are deleted from the `src` directory:\n- **Main Router File**: The tool will automatically generate a new router file.\n- **Router Guard File**: The tool will create a new router guard configuration.\n- **i18n Files**: Any existing i18n files should be removed, as the tool will generate them based on the schema.\n---\n#### Scripts Not Added to `package.json`\nIf the `postinstall` script does not automatically add the required scripts to your `package.json`, you can add them manually:\n\n```json\n\"scripts\": {\n  \"generate-str\": \"node node_modules/vue3-structure-builder/dist/main/index.js\",\n  \"out-schema\": \"node node_modules/vue3-structure-builder/dist/output-file/index.js\"\n}\n```\n## **Contributing**\nWe welcome contributions! If you'd like to improve the tool, feel free to fork the repository, make changes, and submit a pull request.\n\n---","readmeFilename":"README.md"}