多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
5.3 KiB

"use strict";(self.webpackChunknoco_docs=self.webpackChunknoco_docs||[]).push([[8395],{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<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=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",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=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),d=o,g=u["".concat(p,".").concat(d)]||u[d]||m[d]||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]=d;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<a;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},57549:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(87462),o=(n(67294),n(3905));const a={title:"Repository structure",description:"Repository Structure",tags:["Engineering"],hide_table_of_contents:!0},i=void 0,c={unversionedId:"engineering/repository-structure",id:"engineering/repository-structure",title:"Repository structure",description:"Repository Structure",source:"@site/docs/150.engineering/020.repository-structure.md",sourceDirName:"150.engineering",slug:"/engineering/repository-structure",permalink:"/engineering/repository-structure",draft:!1,editUrl:"https://github.com/nocodb/nocodb/tree/develop/packages/noco-docs/docs/docs/150.engineering/020.repository-structure.md",tags:[{label:"Engineering",permalink:"/tags/engineering"}],version:"current",sidebarPosition:20,frontMatter:{title:"Repository structure",description:"Repository Structure",tags:["Engineering"],hide_table_of_contents:!0},sidebar:"tutorialSidebar",previous:{title:"Architecture overview",permalink:"/engineering/architecture"},next:{title:"Development setup",permalink:"/engineering/development-setup"}},p={},l=[],s={toc:l},u="wrapper";function m(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"),"."))))}m.isMDXComponent=!0}}]);