diff --git a/.gitignore b/.gitignore index 7784d0c9c48..1388fbbe126 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,7 @@ dist/ # editors .idea/ + +### Turbo template +# Turborepo task cache +.turbo diff --git a/package.json b/package.json index bc28fc3eae8..fa6be3d3adb 100644 --- a/package.json +++ b/package.json @@ -2,27 +2,28 @@ "name": "waline-root", "private": true, "scripts": { - "admin:build": "pnpm --dir=packages/admin build", - "admin:dev": "pnpm --dir=packages/admin dev", - "api:build": "pnpm --dir=packages/api build", - "apidoc": "apidoc -i packages/server/src/logic -o docs/src/.vuepress/dist/api", - "build": "pnpm admin:build && pnpm api:build && pnpm client:build", + "build": "turbo run build", + "dev": "turbo run dev", + "test": "turbo run test", + "lint": "turbo run lint", + "clean": "turbo run clean", + "prepare": "husky install", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", - "clean": "pnpm -r clean", - "client:build": "pnpm --dir=packages/client build", - "client:dev": "pnpm --dir=packages/client dev", - "docs:build": "pnpm --dir=docs run build && pnpm apidoc", - "docs:dev": "pnpm --dir=docs run dev", - "lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:stylelint", - "lint:eslint": "eslint --ext .js,.jsx,.vue,.ts --fix .", - "lint:md": "markdownlint docs/ --fix", - "lint:prettier": "prettier --check --write .", - "lint:stylelint": "stylelint packages/*/src/**/*.scss --fix", + "apidoc": "apidoc -i packages/server/src/logic -o docs/src/.vuepress/dist/api", "packages:check-update": "pnpm dlx npm-check-updates --deep", "packages:update": "pnpm dlx npm-check-updates --deep -u && pnpm i && pnpm -r up", - "prepare": "husky install", + "admin:build": "turbo run build --filter=admin", + "admin:dev": "turbo run dev --filter=admin", + "api:build": "turbo run build --filter=api", + "client:build": "turbo run build --filter=client", + "client:dev": "turbo run dev --filter=client", + "docs:build": "turbo run build --filter=docs && pnpm apidoc", + "docs:dev": "turbo run dev --filter=docs", "server:dev": "vercel dev ./example --listen 9090", - "test": "vitest" + "lint:eslint": "eslint --ext .js,.jsx,.vue,.ts --fix .", + "lint:md": "markdownlint docs/ --fix", + "lint:prettier": "prettier --check --write .", + "lint:stylelint": "stylelint packages/*/src/**/*.scss --fix" }, "config": { "commitizen": { @@ -91,5 +92,13 @@ "packageManager": "pnpm@8.14.0", "apidoc": { "title": "Waline API Documentation" + }, + "workspaces": [ + "packages/*", + "docs" + ], + "dependencies": { + "turbo": "^1.11.3", + "waline-root": "link:" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 50662dbb27d..100734c52c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,13 @@ settings: importers: .: + dependencies: + turbo: + specifier: ^1.11.3 + version: 1.11.3 + waline-root: + specifier: 'link:' + version: 'link:' devDependencies: '@babel/core': specifier: 7.23.7 @@ -13640,6 +13647,66 @@ packages: safe-buffer: 5.2.1 dev: false + /turbo-darwin-64@1.11.3: + resolution: {integrity: sha512-IsOOg2bVbIt3o/X8Ew9fbQp5t1hTHN3fGNQYrPQwMR2W1kIAC6RfbVD4A9OeibPGyEPUpwOH79hZ9ydFH5kifw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /turbo-darwin-arm64@1.11.3: + resolution: {integrity: sha512-FsJL7k0SaPbJzI/KCnrf/fi3PgCDCjTliMc/kEFkuWVA6Httc3Q4lxyLIIinz69q6JTx8wzh6yznUMzJRI3+dg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /turbo-linux-64@1.11.3: + resolution: {integrity: sha512-SvW7pvTVRGsqtSkII5w+wriZXvxqkluw5FO/MNAdFw0qmoov+PZ237+37/NgArqE3zVn1GX9P6nUx9VO+xcQAg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /turbo-linux-arm64@1.11.3: + resolution: {integrity: sha512-YhUfBi1deB3m+3M55X458J6B7RsIS7UtM3P1z13cUIhF+pOt65BgnaSnkHLwETidmhRh8Dl3GelaQGrB3RdCDw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /turbo-windows-64@1.11.3: + resolution: {integrity: sha512-s+vEnuM2TiZuAUUUpmBHDr6vnNbJgj+5JYfnYmVklYs16kXh+EppafYQOAkcRIMAh7GjV3pLq5/uGqc7seZeHA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /turbo-windows-arm64@1.11.3: + resolution: {integrity: sha512-ZR5z5Zpc7cASwfdRAV5yNScCZBsgGSbcwiA/u3farCacbPiXsfoWUkz28iyrx21/TRW0bi6dbsB2v17swa8bjw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /turbo@1.11.3: + resolution: {integrity: sha512-RCJOUFcFMQNIGKSjC9YmA5yVP1qtDiBA0Lv9VIgrXraI5Da1liVvl3VJPsoDNIR9eFMyA/aagx1iyj6UWem5hA==} + hasBin: true + optionalDependencies: + turbo-darwin-64: 1.11.3 + turbo-darwin-arm64: 1.11.3 + turbo-linux-64: 1.11.3 + turbo-linux-arm64: 1.11.3 + turbo-windows-64: 1.11.3 + turbo-windows-arm64: 1.11.3 + dev: false + /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: false diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000000..937480219c9 --- /dev/null +++ b/turbo.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "pipeline": { + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "dev": { + "persistent": true + }, + "test": { + "dependsOn": ["^build"], + "outputs": [] + }, + "lint": { + "outputs": [] + }, + "clean": { + "outputs": [], + "cache": false + } + } +}