Skip to main content

Add new workspace

The most challenge for this task is all about configurations, package manager, and especially the build tool.

Apps

The current build tool for all workspaces inside the apps folder is Vite, so I will continue with it. There is no official guides for this so I noted this down for myself.

Steps:

  • Create a new folder in apps and cd into it

  • Run pnpm init to create a new package.json file, review it

  • Update the name field of the new created package.json file

  • Review the code below, and copy and paste this into new created package.json file, depends on the purpose of the new workspace, keep only needed packages

    "dependencies": {
    "core": "workspace:*",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "ui": "workspace:*"
    },
    "devDependencies": {
    "@originjs/vite-plugin-commonjs": "^1.0.3",
    "@types/node": "^18.11.9",
    "@types/react": "^18.0.25",
    "@types/react-dom": "^18.0.8",
    "@vitejs/plugin-react": "^2.1.0",
    "eslint": "^7.32.0",
    "eslint-config-custom": "workspace:*",
    "tsconfig": "workspace:*",
    "typescript": "^4.8.3",
    "vite": "^3.1.0",
    }
  • Copy the below content into a new file .eslintrc.js

    module.exports = {
    root: true,
    extends: ["custom"],
    };
  • And here for the vite.config.ts

    import react from "@vitejs/plugin-react";
    import { defineConfig } from "vite";
    import { viteCommonjs } from "@originjs/vite-plugin-commonjs";

    // https://github.com/vitejs/vite/issues/5308#issuecomment-1010652389
    export default defineConfig({
    plugins: [viteCommonjs(), react()],
    });
  • Back to the root folder run pnpm install

  • Add new .env.development.local file at the new created folder