Git Product home page Git Product logo

monorepo-base's Introduction

PNPM monorepo 项目

结构采用 Pnpm-monorepo 形式,用以容纳业务项目和公用模块

结构

apps 下存放各个 APP 应用

packages 为公共模块目录

├── apps                # 后台应用目录
│   └── demo            # next 的 demo 项目
├── packages            # 公用模块目录,可理解为不依赖 npm 发布而可以直接引入的模块
│   ├── components      # 一些公用组件,建议只存放样式类或简单逻辑的组件
│   ├── auth            # 登录相关逻辑及组件
│   ├── http            # 网络请求封装
│   ├── configrc        # babelrc 等配置
|   ├── scripts         # 项目工程化脚本
│   ├── styles          # 公用样式文件及样式相关配置
│   ├── db              # 数据库相关逻辑
│   └── hooks           # 公用 hook
└── package.json        # 定义项目需要的各种模块及配置信息

Q&A

为什么根目录需要安装 next

项目子包 packages/configrc 为该项目的 babelrc/eslintrc 等配置包。 pnpm 结构下[bug],eslintrc 如果需要找到 next 的部分配置文件,需要把 next 直接安装在全局。当然也有可能是我找的 eslint-config-next 不对,不然正常应该是找得到的。

如果该项目内没有使用到 next ,可以把 eslint 中 next 相关的配置 + 根目录的 next 移除。 上网查听说可以用 peerDependencies 来确保全局已经安装了 next,但是尝试失败。

为什么需要把 @lwt/scripts 安装到根目录

Pnpm 下,不会自动把子包 package.json 的 bin 挂载到当前项目,只有引入的情况才会挂载 bin。

TODO: [x] pnpm monorepo 目录搭建 [x] 项目工程化基础 eslint + prettier + husky + lint-staged [x] pnpm dev 脚本 [ ] 解决 eslint 子包 alias 错误提示问题,写个 eslint 的脚本 [ ] pnpm create 新建模本 脚本 [ ] pnpm build:prod 脚本 [ ] pnpm 自动化部署 cicd 集成 dockerfile

monorepo-base's People

Contributors

lwt09 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.