"use strict";(self.webpackChunknoco_docs=self.webpackChunknoco_docs||[]).push([[7219],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>g});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(n),m=o,g=u["".concat(p,".").concat(m)]||u[m]||d[m]||a;return n?r.createElement(g,i(i({ref:t},s),{},{components:n})):r.createElement(g,i({ref:t},s))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Repository structure",description:"Repository Structure",hide_table_of_contents:!0},i=void 0,c={unversionedId:"engineering/repository-structure",id:"version-0.109.7/engineering/repository-structure",title:"Repository structure",description:"Repository Structure",source:"@site/versioned_docs/version-0.109.7/050.engineering/020.repository-structure.md",sourceDirName:"050.engineering",slug:"/engineering/repository-structure",permalink:"/0.109.7/engineering/repository-structure",draft:!1,editUrl:"https://github.com/nocodb/nocodb/tree/develop/packages/noco-docs/docs/versioned_docs/version-0.109.7/050.engineering/020.repository-structure.md",tags:[],version:"0.109.7",sidebarPosition:20,frontMatter:{title:"Repository structure",description:"Repository Structure",hide_table_of_contents:!0},sidebar:"tutorialSidebar",previous:{title:"Architecture Overview",permalink:"/0.109.7/engineering/architecture"},next:{title:"Development Setup",permalink:"/0.109.7/engineering/development-setup"}},p={},l=[],s={toc:l},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"We use ",(0,o.kt)("inlineCode",{parentName:"p"},"Lerna")," to manage multi-packages. We have the following ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/nocodb/nocodb/tree/master/packages"},"packages"),"."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/nc-cli")," : A CLI to create NocoDB app.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/nocodb-sdk"),": API client sdk of nocodb.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/nc-gui"),": NocoDB Frontend.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/nc-lib-gui"),": The build version of ",(0,o.kt)("inlineCode",{parentName:"p"},"nc-gui")," which will be used in ",(0,o.kt)("inlineCode",{parentName:"p"},"packages/nocodb"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/nc-plugin"),": Plugin template.")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/noco-blog"),": NocoDB Blog which will be auto-released to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/nocodb/noco-blog"},"nocodb/noco-blog"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/noco-docs"),": NocoDB Documentation which will be auto-released to ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/nocodb/noco-docs"},"nocodb/noco-docs"),".")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("inlineCode",{parentName:"p"},"packages/nocodb"),": NocoDB Backend, hosted in ",(0,o.kt)("a",{parentName:"p",href:"https://www.npmjs.com/package/nocodb"},"NPM"),"."))))}d.isMDXComponent=!0}}]);