Giter Club home page Giter Club logo

pnpm-monorepo's Introduction

pnpm monorepo

步骤

1. 初始化工程

pnpm init

2. 创建 pnpm-workspace.yaml

packages:
  - 'packages/**'

3. 创建 packages/common

导出方法

export default function printPoem(num) {
  console.log("可怜白骨攒孤冢,尽为将军觅战功。", num);
}

修改 package.json

{
    "type": "module",
}

4. 创建 packages/page1

# vue项目
pnpm create vite page1

cd page1
pnpm install

# 修改vite.config.js运行在3001端口
pnpm run dev

5. 创建 packages/page2

# react项目
pnpm create vite page2

cd page2
pnpm install

# 修改vite.config.js运行在3002端口
pnpm run dev

6. 创建 packages/server

pnpm install common
pnpm install express

可以看到如果依赖的是当前项目的模块,版本号会有 workspace: 前缀

{
    "dependencies": {
    	"common": "workspace:^1.0.0",
    	"express": "^4.18.2"
  	}
}

src/index.js

import printPoem from "common";
import express from "express";
import _ from "lodash";

// 可以使用项目共享的lodash依赖以及当前项目的模块依赖
printPoem(_.random(10, 20));

const app = express();
const port = 8080;

app.all("*", function (req, res, next) {
  res.header("Access-Control-Allow-Host", "*");
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  next();
});

app.get("/", (req, res) => {
  res.send("Hello world!");
});

app.listen(port, () => {
  console.log(`App listening on port ${port}`);
});

观察依赖提升

image-20221030201314346

image-20221030201346586

image-20221030202217699

pnpm-monorepo's People

Contributors

zlx01 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.