From ab463330409670da47aa822d1701782216d104ce Mon Sep 17 00:00:00 2001 From: wangshouren <1115808717@qq.com> Date: Mon, 8 Jul 2024 06:20:17 +0800 Subject: [PATCH] use turbo --- .github/workflows/ci.yml | 75 ++-- .gitignore | 5 +- apps/large-file-upload/next.config.mjs | 1 + apps/large-file-upload/package.json | 2 +- .../libs/shared/components/git-log.tsx | 3 +- apps/stackoverflow/next.config.mjs | 1 + apps/stackoverflow/package.json | 4 +- nx.json | 19 - package.json | 3 +- pnpm-lock.yaml | 64 +++ rush.json | 408 ------------------ turbo.json | 16 + 12 files changed, 128 insertions(+), 473 deletions(-) delete mode 100644 nx.json delete mode 100644 rush.json create mode 100644 turbo.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c34d398..53ff3b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,39 +1,36 @@ -name: CI -on: - push: - branches: ["main"] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v3 - with: - node-version: 20 - - - name: Install dependencies - run: corepack enable pnpm && pnpm install --frozen-lockfile - - - name: Test - run: pnpm nx run-many -t test - - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v3 - with: - node-version: 20 - - - name: Install dependencies - run: corepack enable pnpm && pnpm install --frozen-lockfile - - - name: Build - run: pnpm nx connect && pnpm nx build large-file-upload +name: CI + +on: + push: + branches: ["main"] + pull_request: + types: [opened, synchronize] + +jobs: + build: + name: Build and Test + timeout-minutes: 15 + runs-on: ubuntu-latest + # To use Remote Caching, uncomment the next lines and follow the steps below. + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + TURBO_REMOTE_ONLY: true + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: Install dependencies + run: corepack enable && pnpm install --frozen-lockfile + + - name: Type check + run: npx turbo check-types diff --git a/.gitignore b/.gitignore index 110eefe..28be9e0 100644 --- a/.gitignore +++ b/.gitignore @@ -121,4 +121,7 @@ dist-storybook/ .nx/cache -.nx/workspace-data \ No newline at end of file +.nx/workspace-data + +# turbo +.turbo \ No newline at end of file diff --git a/apps/large-file-upload/next.config.mjs b/apps/large-file-upload/next.config.mjs index 3f7722b..10c5795 100644 --- a/apps/large-file-upload/next.config.mjs +++ b/apps/large-file-upload/next.config.mjs @@ -8,6 +8,7 @@ const nextConfig = { */ output: "standalone", distDir: "dist", + output: "standalone", }; export default nextConfig; diff --git a/apps/large-file-upload/package.json b/apps/large-file-upload/package.json index 65b32be..99f8f73 100644 --- a/apps/large-file-upload/package.json +++ b/apps/large-file-upload/package.json @@ -10,7 +10,7 @@ "build:next": "next build", "build:socket-server": "tsup socket-server.ts", "lint": "next lint", - "typecheck": "npx tsc --noEmit", + "check-types": "npx tsc --noEmit", "test": "vitest --run" }, "dependencies": { diff --git a/apps/stackoverflow/libs/shared/components/git-log.tsx b/apps/stackoverflow/libs/shared/components/git-log.tsx index 8a09cc6..72296c1 100644 --- a/apps/stackoverflow/libs/shared/components/git-log.tsx +++ b/apps/stackoverflow/libs/shared/components/git-log.tsx @@ -1,6 +1,5 @@ "use client"; -import log from "@/shared/assets/git.log?raw"; import React from "react"; import { IComponentBaseProps } from "../types"; import { mp } from "../utils"; @@ -8,5 +7,5 @@ import { mp } from "../utils"; export interface IGitLogProps extends IComponentBaseProps {} export const GitLog: React.FC = (props) => { - return mp(props,
{log}
); + return mp(props,
{""}
); }; diff --git a/apps/stackoverflow/next.config.mjs b/apps/stackoverflow/next.config.mjs index 51cf571..38e80b5 100644 --- a/apps/stackoverflow/next.config.mjs +++ b/apps/stackoverflow/next.config.mjs @@ -51,6 +51,7 @@ const nextConfig = { }, }); }, + output: "standalone", }; export default nextConfig; diff --git a/apps/stackoverflow/package.json b/apps/stackoverflow/package.json index 792acc9..2f94ff5 100644 --- a/apps/stackoverflow/package.json +++ b/apps/stackoverflow/package.json @@ -13,8 +13,8 @@ "test": "vitest --run", "prisma:studio": "dotenv -e .env.development -- npx prisma studio -b false", "prisma:sync:dev": "dotenv -e .env.development -- tsx .scripts/sync-prisma.ts", - "typecheck": "npx tsc --noEmit", - "prepare": "npx prisma generate" + "check-types": "npx tsc --noEmit", + "prepare": "tsx ./.scripts/prepare.ts && prisma generate" }, "prisma": { "schema": "libs/prisma/schema.prisma", diff --git a/nx.json b/nx.json deleted file mode 100644 index 2d5ad8c..0000000 --- a/nx.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "./node_modules/nx/schemas/nx-schema.json", - "tasksRunnerOptions": { - "default": { - "runner": "nx/tasks-runners/default", - "options": { - "cacheableOperations": ["build"] - } - } - }, - "targetDefaults": { - "build": { - "outputs": ["{projectRoot}/dist"], - "cache": true - } - }, - "defaultBase": "main", - "nxCloudAccessToken": "YTAwMmVhMTgtYjEyMC00MjVjLWI5MGMtYzExNTZlMDY3NTE5fHJlYWQtd3JpdGU=" -} diff --git a/package.json b/package.json index 64c3856..136eb83 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "private": true, "packageManager": "pnpm@9.4.0+sha512.f549b8a52c9d2b8536762f99c0722205efc5af913e77835dbccc3b0b0b2ca9e7dc8022b78062c17291c48e88749c70ce88eb5a74f1fa8c4bf5e18bb46c8bd83a", "devDependencies": { - "nx": "19.4.1" + "nx": "19.4.1", + "turbo": "^2.0.6" } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a5f6a3..fbc4483 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: nx: specifier: 19.4.1 version: 19.4.1 + turbo: + specifier: ^2.0.6 + version: 2.0.6 apps/large-file-upload: dependencies: @@ -7754,6 +7757,40 @@ packages: tui-color-picker@2.2.8: resolution: {integrity: sha512-q5sE9NQ5NR9lYpilYjcI7Sdv0KCogo+W8fZY+AYTj/HYg+9fscYy3UuJ6UQiV1bF+ARCLwFRWC8UcOt9kuUctQ==} + turbo-darwin-64@2.0.6: + resolution: {integrity: sha512-XpgBwWj3Ggmz/gQVqXdMKXHC1iFPMDiuwugLwSzE7Ih0O13JuNtYZKhQnopvbDQnFQCeRq2Vsm5OTWabg/oB/g==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.0.6: + resolution: {integrity: sha512-RfeZYXIAkiA21E8lsvfptGTqz/256YD+eI1x37fedfvnHFWuIMFZGAOwJxtZc6QasQunDZ9TRRREbJNI68tkIw==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.0.6: + resolution: {integrity: sha512-92UDa0xNQQbx0HdSp9ag3YSS3xPdavhc7q9q9mxIAcqyjjD6VElA4Y85m4F/DDGE5SolCrvBz2sQhVmkOd6Caw==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.0.6: + resolution: {integrity: sha512-eQKu6utCVUkIH2kqOzD8OS6E0ba6COjWm6PRDTNCHQRljZW503ycaTUIdMOiJrVg1MkEjDyOReUg8s8D18aJ4Q==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.0.6: + resolution: {integrity: sha512-+9u4EPrpoeHYCQ46dRcou9kbkSoelhOelHNcbs2d86D6ruYD/oIAHK9qgYK8LeARRz0jxhZIA/dWYdYsxJJWkw==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.0.6: + resolution: {integrity: sha512-rdrKL+p+EjtdDVg0wQ/7yTbzkIYrnb0Pw4IKcjsy3M0RqUM9UcEi67b94XOAyTa5a0GqJL1+tUj2ebsFGPgZbg==} + cpu: [arm64] + os: [win32] + + turbo@2.0.6: + resolution: {integrity: sha512-/Ftmxd5Mq//a9yMonvmwENNUN65jOVTwhhBPQjEtNZutYT9YKyzydFGLyVM1nzhpLWahQSMamRc/RDBv5EapzA==} + hasBin: true + tween-functions@1.2.0: resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} @@ -17152,6 +17189,33 @@ snapshots: tui-color-picker@2.2.8: {} + turbo-darwin-64@2.0.6: + optional: true + + turbo-darwin-arm64@2.0.6: + optional: true + + turbo-linux-64@2.0.6: + optional: true + + turbo-linux-arm64@2.0.6: + optional: true + + turbo-windows-64@2.0.6: + optional: true + + turbo-windows-arm64@2.0.6: + optional: true + + turbo@2.0.6: + optionalDependencies: + turbo-darwin-64: 2.0.6 + turbo-darwin-arm64: 2.0.6 + turbo-linux-64: 2.0.6 + turbo-linux-arm64: 2.0.6 + turbo-windows-64: 2.0.6 + turbo-windows-arm64: 2.0.6 + tween-functions@1.2.0: {} type-check@0.4.0: diff --git a/rush.json b/rush.json deleted file mode 100644 index af08eb8..0000000 --- a/rush.json +++ /dev/null @@ -1,408 +0,0 @@ -/** - * This is the main configuration file for Rush. - * For full documentation, please see https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json", - - /** - * (Required) This specifies the version of the Rush engine to be used in this repo. - * Rush's "version selector" feature ensures that the globally installed tool will - * behave like this release, regardless of which version is installed globally. - * - * The common/scripts/install-run-rush.js automation script also uses this version. - * - * NOTE: If you upgrade to a new major version of Rush, you should replace the "v5" - * path segment in the "$schema" field for all your Rush config files. This will ensure - * correct error-underlining and tab-completion for editors such as VS Code. - */ - "rushVersion": "5.129.6", - - /** - * The next field selects which package manager should be installed and determines its version. - * Rush installs its own local copy of the package manager to ensure that your build process - * is fully isolated from whatever tools are present in the local environment. - * - * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation - * for details about these alternatives. - */ - "pnpmVersion": "8.15.8", - - // "npmVersion": "6.14.15", - // "yarnVersion": "1.9.4", - - /** - * Older releases of the Node.js engine may be missing features required by your system. - * Other releases may have bugs. In particular, the "latest" version will not be a - * Long Term Support (LTS) version and is likely to have regressions. - * - * Specify a SemVer range to ensure developers use a Node.js version that is appropriate - * for your repo. - * - * LTS schedule: https://nodejs.org/en/about/releases/ - * LTS versions: https://nodejs.org/en/download/releases/ - */ - "nodeSupportedVersionRange": ">=18.20.3 <19.0.0 || >=20.14.0 <21.0.0", - - /** - * If the version check above fails, Rush will display a message showing the current - * node version and the supported version range. You can use this setting to provide - * additional instructions that will display below the warning, if there's a specific - * tool or script you'd like the user to use to get in line with the expected version. - */ - // "nodeSupportedVersionInstructions": "Run 'nvs use' to switch to the expected node version.", - - /** - * Odd-numbered major versions of Node.js are experimental. Even-numbered releases - * spend six months in a stabilization period before the first Long Term Support (LTS) version. - * For example, 8.9.0 was the first LTS version of Node.js 8. Pre-LTS versions are not recommended - * for production usage because they frequently have bugs. They may cause Rush itself - * to malfunction. - * - * Rush normally prints a warning if it detects a pre-LTS Node.js version. If you are testing - * pre-LTS versions in preparation for supporting the first LTS version, you can use this setting - * to disable Rush's warning. - */ - // "suppressNodeLtsWarning": false, - - /** - * Large monorepos can become intimidating for newcomers if project folder paths don't follow - * a consistent and recognizable pattern. When the system allows nested folder trees, - * we've found that teams will often use subfolders to create islands that isolate - * their work from others ("shipping the org"). This hinders collaboration and code sharing. - * - * The Rush developers recommend a "category folder" model, where buildable project folders - * must always be exactly two levels below the repo root. The parent folder acts as the category. - * This provides a basic facility for grouping related projects (e.g. "apps", "libraries", - * "tools", "prototypes") while still encouraging teams to organize their projects into - * a unified taxonomy. Limiting to 2 levels seems very restrictive at first, but if you have - * 20 categories and 20 projects in each category, this scheme can easily accommodate hundreds - * of projects. In practice, you will find that the folder hierarchy needs to be rebalanced - * occasionally, but if that's painful, it's a warning sign that your development style may - * discourage refactoring. Reorganizing the categories should be an enlightening discussion - * that brings people together, and maybe also identifies poor coding practices (e.g. file - * references that reach into other project's folders without using Node.js module resolution). - * - * The defaults are projectFolderMinDepth=1 and projectFolderMaxDepth=2. - * - * To remove these restrictions, you could set projectFolderMinDepth=1 - * and set projectFolderMaxDepth to a large number. - */ - // "projectFolderMinDepth": 2, - // "projectFolderMaxDepth": 2, - - /** - * Today the npmjs.com registry enforces fairly strict naming rules for packages, but in the early - * days there was no standard and hardly any enforcement. A few large legacy projects are still using - * nonstandard package names, and private registries sometimes allow it. Set "allowMostlyStandardPackageNames" - * to true to relax Rush's enforcement of package names. This allows upper case letters and in the future may - * relax other rules, however we want to minimize these exceptions. Many popular tools use certain punctuation - * characters as delimiters, based on the assumption that they will never appear in a package name; thus if we relax - * the rules too much it is likely to cause very confusing malfunctions. - * - * The default value is false. - */ - // "allowMostlyStandardPackageNames": true, - - /** - * This feature helps you to review and approve new packages before they are introduced - * to your monorepo. For example, you may be concerned about licensing, code quality, - * performance, or simply accumulating too many libraries with overlapping functionality. - * The approvals are tracked in two config files "browser-approved-packages.json" - * and "nonbrowser-approved-packages.json". See the Rush documentation for details. - */ - // "approvedPackagesPolicy": { - // /** - // * The review categories allow you to say for example "This library is approved for usage - // * in prototypes, but not in production code." - // * - // * Each project can be associated with one review category, by assigning the "reviewCategory" field - // * in the "projects" section of rush.json. The approval is then recorded in the files - // * "common/config/rush/browser-approved-packages.json" and "nonbrowser-approved-packages.json" - // * which are automatically generated during "rush update". - // * - // * Designate categories with whatever granularity is appropriate for your review process, - // * or you could just have a single category called "default". - // */ - // "reviewCategories": [ - // // Some example categories: - // "production", // projects that ship to production - // "tools", // non-shipping projects that are part of the developer toolchain - // "prototypes" // experiments that should mostly be ignored by the review process - // ], - // - // /** - // * A list of NPM package scopes that will be excluded from review. - // * We recommend to exclude TypeScript typings (the "@types" scope), because - // * if the underlying package was already approved, this would imply that the typings - // * are also approved. - // */ - // // "ignoredNpmScopes": ["@types"] - // }, - - /** - * If you use Git as your version control system, this section has some additional - * optional features you can use. - */ - "gitPolicy": { - /** - * Work at a big company? Tired of finding Git commits at work with unprofessional Git - * emails such as "beer-lover@my-college.edu"? Rush can validate people's Git email address - * before they get started. - * - * Define a list of regular expressions describing allowable e-mail patterns for Git commits. - * They are case-insensitive anchored JavaScript RegExps. Example: ".*@example\.com" - * - * IMPORTANT: Because these are regular expressions encoded as JSON string literals, - * RegExp escapes need two backslashes, and ordinary periods should be "\\.". - */ - // "allowedEmailRegExps": [ - // "[^@]+@users\\.noreply\\.github\\.com", - // "rush-bot@example\\.org" - // ], - /** - * When Rush reports that the address is malformed, the notice can include an example - * of a recommended email. Make sure it conforms to one of the allowedEmailRegExps - * expressions. - */ - // "sampleEmail": "example@users.noreply.github.com", - /** - * The commit message to use when committing changes during 'rush publish'. - * - * For example, if you want to prevent these commits from triggering a CI build, - * you might configure your system's trigger to look for a special string such as "[skip-ci]" - * in the commit message, and then customize Rush's message to contain that string. - */ - // "versionBumpCommitMessage": "Bump versions [skip ci]", - /** - * The commit message to use when committing changes during 'rush version'. - * - * For example, if you want to prevent these commits from triggering a CI build, - * you might configure your system's trigger to look for a special string such as "[skip-ci]" - * in the commit message, and then customize Rush's message to contain that string. - */ - // "changeLogUpdateCommitMessage": "Update changelogs [skip ci]", - /** - * The commit message to use when commiting changefiles during 'rush change --commit' - * - * If no commit message is set it will default to 'Rush change' - */ - // "changefilesCommitMessage": "Rush change" - }, - - "repository": { - /** - * The URL of this Git repository, used by "rush change" to determine the base branch for your PR. - * - * The "rush change" command needs to determine which files are affected by your PR diff. - * If you merged or cherry-picked commits from the main branch into your PR branch, those commits - * should be excluded from this diff (since they belong to some other PR). In order to do that, - * Rush needs to know where to find the base branch for your PR. This information cannot be - * determined from Git alone, since the "pull request" feature is not a Git concept. Ideally - * Rush would use a vendor-specific protocol to query the information from GitHub, Azure DevOps, etc. - * But to keep things simple, "rush change" simply assumes that your PR is against the "main" branch - * of the Git remote indicated by the repository.url setting in rush.json. If you are working in - * a GitHub "fork" of the real repo, this setting will be different from the repository URL of your - * your PR branch, and in this situation "rush change" will also automatically invoke "git fetch" - * to retrieve the latest activity for the remote main branch. - */ - // "url": "https://github.com/microsoft/rush-example", - /** - * The default branch name. This tells "rush change" which remote branch to compare against. - * The default value is "main" - */ - // "defaultBranch": "main", - /** - * The default remote. This tells "rush change" which remote to compare against if the remote URL is - * not set or if a remote matching the provided remote URL is not found. - */ - // "defaultRemote": "origin" - }, - - /** - * Event hooks are customized script actions that Rush executes when specific events occur - */ - "eventHooks": { - /** - * A list of shell commands to run before "rush install" or "rush update" starts installation - */ - "preRushInstall": [ - // "common/scripts/pre-rush-install.js" - ], - - /** - * A list of shell commands to run after "rush install" or "rush update" finishes installation - */ - "postRushInstall": [], - - /** - * A list of shell commands to run before "rush build" or "rush rebuild" starts building - */ - "preRushBuild": [], - - /** - * A list of shell commands to run after "rush build" or "rush rebuild" finishes building - */ - "postRushBuild": [], - - /** - * A list of shell commands to run before the "rushx" command starts - */ - "preRushx": [], - - /** - * A list of shell commands to run after the "rushx" command finishes - */ - "postRushx": [] - }, - - /** - * Rush can collect anonymous telemetry about everyday developer activity such as - * success/failure of installs, builds, and other operations. You can use this to identify - * problems with your toolchain or Rush itself. THIS TELEMETRY IS NOT SHARED WITH MICROSOFT. - * It is written into JSON files in the common/temp folder. It's up to you to write scripts - * that read these JSON files and do something with them. These scripts are typically registered - * in the "eventHooks" section. - */ - // "telemetryEnabled": false, - - /** - * Allows creation of hotfix changes. This feature is experimental so it is disabled by default. - * If this is set, 'rush change' only allows a 'hotfix' change type to be specified. This change type - * will be used when publishing subsequent changes from the monorepo. - */ - // "hotfixChangeEnabled": false, - - /** - * This is an optional, but recommended, list of allowed tags that can be applied to Rush projects - * using the "tags" setting in this file. This list is useful for preventing mistakes such as misspelling, - * and it also provides a centralized place to document your tags. If "allowedProjectTags" list is - * not specified, then any valid tag is allowed. A tag name must be one or more words - * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits, - * ".", and "@" characters. - */ - // "allowedProjectTags": [ "tools", "frontend-team", "1.0.0-release" ], - - /** - * (Required) This is the inventory of projects to be managed by Rush. - * - * Rush does not automatically scan for projects using wildcards, for a few reasons: - * 1. Depth-first scans are expensive, particularly when tools need to repeatedly collect the list. - * 2. On a caching CI machine, scans can accidentally pick up files left behind from a previous build. - * 3. It's useful to have a centralized inventory of all projects and their important metadata. - */ - "projects": [ - { - "packageName": "stackoverflow", - "projectFolder": "apps/stackoverflow" - }, - { - "packageName": "large-file-upload", - "projectFolder": "apps/large-file-upload" - } - // { - // /** - // * The NPM package name of the project (must match package.json) - // */ - // "packageName": "my-app", - // - // /** - // * The path to the project folder, relative to the rush.json config file. - // */ - // "projectFolder": "apps/my-app", - // - // /** - // * This field is only used if "subspacesEnabled" is true in subspaces.json. - // * It specifies the subspace that this project belongs to. If omitted, then the - // * project belongs to the "default" subspace. - // */ - // // "subspaceName": "my-subspace", - // - // /** - // * An optional category for usage in the "browser-approved-packages.json" - // * and "nonbrowser-approved-packages.json" files. The value must be one of the - // * strings from the "reviewCategories" defined above. - // */ - // "reviewCategory": "production", - // - // /** - // * A list of Rush project names that are to be installed from NPM - // * instead of linking to the local project. - // * - // * If a project's package.json specifies a dependency that is another Rush project - // * in the monorepo workspace, normally Rush will locally link its folder instead of - // * installing from NPM. If you are using PNPM workspaces, this is indicated by - // * a SemVer range such as "workspace:^1.2.3". To prevent mistakes, Rush reports - // * an error if the "workspace:" protocol is missing. - // * - // * Locally linking ensures that regressions are caught as early as possible and is - // * a key benefit of monorepos. However there are occasional situations where - // * installing from NPM is needed. A classic example is a cyclic dependency. - // * Imagine three Rush projects: "my-toolchain" depends on "my-tester", which depends - // * on "my-library". Suppose that we add "my-toolchain" to the "devDependencies" - // * of "my-library" so it can be built by our toolchain. This cycle creates - // * a problem -- Rush can't build a project using a not-yet-built dependency. - // * We can solve it by adding "my-toolchain" to the "decoupledLocalDependencies" - // * of "my-library", so it builds using the last published release. Choose carefully - // * which package to decouple; some choices are much easier to manage than others. - // * - // * (In older Rush releases, this setting was called "cyclicDependencyProjects".) - // */ - // "decoupledLocalDependencies": [ - // // "my-toolchain" - // ], - // - // /** - // * If true, then this project will be ignored by the "rush check" command. - // * The default value is false. - // */ - // // "skipRushCheck": false, - // - // /** - // * A flag indicating that changes to this project will be published to npm, which affects - // * the Rush change and publish workflows. The default value is false. - // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. - // */ - // // "shouldPublish": false, - // - // /** - // * Facilitates postprocessing of a project's files prior to publishing. - // * - // * If specified, the "publishFolder" is the relative path to a subfolder of the project folder. - // * The "rush publish" command will publish the subfolder instead of the project folder. The subfolder - // * must contain its own package.json file, which is typically a build output. - // */ - // // "publishFolder": "temp/publish", - // - // /** - // * An optional version policy associated with the project. Version policies are defined - // * in "version-policies.json" file. See the "rush publish" documentation for more info. - // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. - // */ - // // "versionPolicyName": "", - // - // /** - // * An optional set of custom tags that can be used to select this project. For example, - // * adding "my-custom-tag" will allow this project to be selected by the - // * command "rush list --only tag:my-custom-tag". The tag name must be one or more words - // * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits, - // * ".", and "@" characters. - // */ - // // "tags": [ "1.0.0-release", "frontend-team" ] - // }, - // - // { - // "packageName": "my-controls", - // "projectFolder": "libraries/my-controls", - // "reviewCategory": "production", - // "tags": [ "frontend-team" ] - // }, - // - // { - // "packageName": "my-toolchain", - // "projectFolder": "tools/my-toolchain", - // "reviewCategory": "tools", - // "tags": [ "tools" ] - // } - ] -} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..5ed9e35 --- /dev/null +++ b/turbo.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "build": { + "dependsOn": ["^build"], + "outputs": [".next/**", "!.next/cache/**"] + }, + "check-types": { + "dependsOn": ["^check-types"] + }, + "dev": { + "persistent": true, + "cache": false + } + } +}