fix: fix root start script (#5032)

Fixes #5022

See https://nx.dev/recipes/running-tasks/root-level-scripts#setup
This commit is contained in:
Thaïs
2024-04-19 18:28:02 +02:00
committed by GitHub
parent 43f0b11aab
commit d3170fc1ea
28 changed files with 94 additions and 79 deletions

View File

@@ -41,4 +41,4 @@ jobs:
- name: Publish to Chromatic - name: Publish to Chromatic
run: | run: |
cd packages/twenty-front cd packages/twenty-front
yarn nx chromatic:ci npx nx chromatic:ci

View File

@@ -69,4 +69,4 @@ jobs:
key: root-node_modules-${{hashFiles('yarn.lock')}} key: root-node_modules-${{hashFiles('yarn.lock')}}
restore-keys: root-node_modules- restore-keys: root-node_modules-
- name: Chrome Extension / Run build - name: Chrome Extension / Run build
run: yarn nx build twenty-chrome-extension run: npx nx build twenty-chrome-extension

View File

@@ -28,7 +28,7 @@ jobs:
- name: Docs / Install Dependencies - name: Docs / Install Dependencies
run: yarn run: yarn
- name: Docs / Build Documentation - name: Docs / Build Documentation
run: yarn nx build twenty-docs run: npx nx build twenty-docs
vale: vale:
name: runner / vale name: runner / vale
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -77,7 +77,7 @@ jobs:
- name: Run storybook tests - name: Run storybook tests
run: | run: |
npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \ npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \
"STORYBOOK_SCOPE=pages npx nx run twenty-front:storybook:static" \ "STORYBOOK_SCOPE=pages npx nx run twenty-front:storybook:static:ci" \
"npx wait-on tcp:6006 && STORYBOOK_SCOPE=pages npx nx run twenty-front:storybook:test" "npx wait-on tcp:6006 && STORYBOOK_SCOPE=pages npx nx run twenty-front:storybook:test"
front-modules-sb-test: front-modules-sb-test:
needs: front-yarn-install needs: front-yarn-install
@@ -115,7 +115,7 @@ jobs:
- name: Run storybook tests - name: Run storybook tests
run: | run: |
npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \ npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \
"STORYBOOK_SCOPE=modules npx nx run twenty-front:storybook:static" \ "STORYBOOK_SCOPE=modules npx nx run twenty-front:storybook:static:ci" \
"npx wait-on tcp:6006 && STORYBOOK_SCOPE=modules npx nx run twenty-front:storybook:test" "npx wait-on tcp:6006 && STORYBOOK_SCOPE=modules npx nx run twenty-front:storybook:test"
front-lint-tsc: front-lint-tsc:
needs: front-yarn-install needs: front-yarn-install

View File

@@ -36,14 +36,14 @@ jobs:
- name: Server / Install Dependencies - name: Server / Install Dependencies
run: yarn run: yarn
- name: Server / Run linter - name: Server / Run linter
run: yarn nx lint twenty-server run: npx nx lint twenty-server
- name: Server / Run jest tests - name: Server / Run jest tests
run: yarn nx test:unit twenty-server run: npx nx test:unit twenty-server
- name: Server / Build - name: Server / Build
run: yarn nx build twenty-server run: npx nx build twenty-server
- name: Server / Write .env - name: Server / Write .env
run: | run: |
cd packages/twenty-server cd packages/twenty-server
cp .env.example .env cp .env.example .env
- name: Worker / Run - name: Worker / Run
run: MESSAGE_QUEUE_TYPE=sync yarn nx worker twenty-server run: MESSAGE_QUEUE_TYPE=sync npx nx worker twenty-server

View File

@@ -28,6 +28,6 @@ jobs:
- name: Utils / Install Dependencies - name: Utils / Install Dependencies
run: yarn run: yarn
- name: Utils / Run Danger.js - name: Utils / Run Danger.js
run: cd packages/twenty-utils && yarn nx danger:ci run: cd packages/twenty-utils && npx nx danger:ci
env: env:
DANGER_GITHUB_API_TOKEN: ${{ github.token }} DANGER_GITHUB_API_TOKEN: ${{ github.token }}

View File

@@ -26,4 +26,4 @@ jobs:
- name: Website / Install Dependencies - name: Website / Install Dependencies
run: yarn run: yarn
- name: Website / Build Website - name: Website / Build Website
run: yarn nx build twenty-website run: npx nx build twenty-website

View File

@@ -329,8 +329,9 @@
"typescript": "5.3.3" "typescript": "5.3.3"
}, },
"version": "0.2.1", "version": "0.2.1",
"nx": {},
"scripts": { "scripts": {
"start:prod": "cross-env FORCE_COLOR=true concurrently -n \"twenty-server,twenty-front\" -c \"bgBlue.bold,bgGreen.bold\" \"yarn nx start twenty-server\" \"yarn nx start twenty-front\"" "start": "nx run-many -t start -p twenty-server twenty-front"
}, },
"workspaces": { "workspaces": {
"packages": [ "packages": [

View File

@@ -22,7 +22,7 @@ VITE_FRONT_BASE_URL=http://localhost:3001
- STEP 4: Now, execute the following command in the root directory to start up the development server on Port 3002. This will create a `dist` folder in `twenty-chrome-extension`. - STEP 4: Now, execute the following command in the root directory to start up the development server on Port 3002. This will create a `dist` folder in `twenty-chrome-extension`.
``` ```
yarn nx start twenty-chrome-extension npx nx start twenty-chrome-extension
``` ```
- STEP 5: Open Google Chrome and head to the extensions page by typing `chrome://extensions` in the address bar. - STEP 5: Open Google Chrome and head to the extensions page by typing `chrome://extensions` in the address bar.
@@ -57,4 +57,4 @@ yarn nx start twenty-chrome-extension
<img src="../twenty-chrome-extension/public/readme-images/05-img-five.png" width="600" /> <img src="../twenty-chrome-extension/public/readme-images/05-img-five.png" width="600" />
</p> </p>
To install the extension in production mode without hmr (hot module reload), replace the command in STEP FOUR with `yarn nx build twenty-chrome-extension`. You may or may not want to execute STEP THREE based on your requirements. To install the extension in production mode without hmr (hot module reload), replace the command in STEP FOUR with `npx nx build twenty-chrome-extension`. You may or may not want to execute STEP THREE based on your requirements.

View File

@@ -6,13 +6,13 @@
"type": "module", "type": "module",
"scripts": { "scripts": {
"nx": "NX_DEFAULT_PROJECT=twenty-chrome-extension node ../../node_modules/nx/bin/nx.js", "nx": "NX_DEFAULT_PROJECT=twenty-chrome-extension node ../../node_modules/nx/bin/nx.js",
"clean": "rimraf ./dist", "clean": "npx rimraf ./dist",
"start": "yarn clean && vite", "start": "yarn clean && npx vite",
"build": "yarn clean && tsc && vite build", "build": "yarn clean && npx tsc && npx vite build",
"lint": "eslint . --report-unused-disable-directives --max-warnings 0 --config .eslintrc.cjs", "lint": "npx eslint . --report-unused-disable-directives --max-warnings 0 --config .eslintrc.cjs",
"graphql:generate": "graphql-codegen", "graphql:generate": "npx graphql-codegen",
"fmt": "prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"", "fmt": "npx prettier --check \"src/**/*.ts\" \"src/**/*.tsx\"",
"fmt:fix": "prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\"" "fmt:fix": "npx prettier --cache --write \"src/**/*.ts\" \"src/**/*.tsx\""
}, },
"dependencies": { "dependencies": {
"@types/chrome": "^0.0.256" "@types/chrome": "^0.0.256"

View File

@@ -14,7 +14,7 @@ COPY ./packages/twenty-ui /app/packages/twenty-ui
RUN yarn RUN yarn
COPY ./packages/twenty-docs /app/packages/twenty-docs COPY ./packages/twenty-docs /app/packages/twenty-docs
RUN yarn nx build twenty-docs RUN npx nx build twenty-docs
CMD ["tail", "-f", "/dev/null"] CMD ["tail", "-f", "/dev/null"]

View File

@@ -13,7 +13,7 @@ COPY ./packages/twenty-website/package.json /app/packages/twenty-website/package
RUN yarn RUN yarn
COPY ./packages/twenty-website /app/packages/twenty-website COPY ./packages/twenty-website /app/packages/twenty-website
RUN yarn nx build twenty-website RUN npx nx build twenty-website
FROM node:18.17.1-alpine as twenty-website FROM node:18.17.1-alpine as twenty-website
@@ -26,4 +26,4 @@ WORKDIR /app/packages/twenty-website
LABEL org.opencontainers.image.source=https://github.com/twentyhq/twenty LABEL org.opencontainers.image.source=https://github.com/twentyhq/twenty
LABEL org.opencontainers.image.description="This image provides a consistent and reproducible environment for the website." LABEL org.opencontainers.image.description="This image provides a consistent and reproducible environment for the website."
CMD ["/bin/sh", "-c", "yarn nx start"] CMD ["/bin/sh", "-c", "npx nx start"]

View File

@@ -14,30 +14,30 @@ import DocCardList from '@theme/DocCardList';
## Useful commands ## Useful commands
These commands should be exectued from packages/twenty-server folder. These commands should be exectued from packages/twenty-server folder.
From any other folder you can run `yarn nx <command>` twenty-server. From any other folder you can run `npx nx <command>` twenty-server.
### First time setup ### First time setup
``` ```
yarn nx database:reset # setup the database with dev seeds npx nx database:reset # setup the database with dev seeds
``` ```
### Starting the app ### Starting the app
``` ```
yarn nx start npx nx start
``` ```
### Lint ### Lint
``` ```
yarn nx lint npx nx lint
``` ```
### Test ### Test
``` ```
yarn nx test:unit npx nx test:unit
``` ```
### Resetting the database ### Resetting the database
@@ -45,7 +45,7 @@ yarn nx test:unit
If you want to reset the database, you can run the following command: If you want to reset the database, you can run the following command:
```bash ```bash
yarn nx database:reset npx nx database:reset
``` ```
:::warning :::warning

View File

@@ -24,11 +24,11 @@ If you don't, make sure you don't have more than one postgres instance running o
## Cannot find module 'twenty-emails' or its corresponding type declarations. ## Cannot find module 'twenty-emails' or its corresponding type declarations.
You have to build the package `twenty-emails` before running the initialization of the database with `yarn nx run twenty-emails:build` You have to build the package `twenty-emails` before running the initialization of the database with `npx nx run twenty-emails:build`
## Missing twenty-x package ## Missing twenty-x package
Make sure to run yarn in the root directory and then run `yarn nx server:dev twenty-server`. If this still doesn't work try building the missing package manually. Make sure to run yarn in the root directory and then run `npx nx server:dev twenty-server`. If this still doesn't work try building the missing package manually.
## Lint on Save not working ## Lint on Save not working

View File

@@ -182,7 +182,7 @@ yarn
Setup your database with the following command: Setup your database with the following command:
```bash ```bash
yarn nx database:reset twenty-server npx nx database:reset twenty-server
``` ```
Start the server and the frontend: Start the server and the frontend:

View File

@@ -44,7 +44,7 @@ FILE_TOKEN_SECRET=replace_me_with_a_random_string_refresh
If you encounter errors, (not able to log into the application after inputting an email) after the inital setup, try running the following commands and see if that solves your issue. If you encounter errors, (not able to log into the application after inputting an email) after the inital setup, try running the following commands and see if that solves your issue.
``` ```
docker exec -it twenty-server-1 yarn docker exec -it twenty-server-1 yarn
docker exec -it twenty-server-1 yarn nx database:reset docker exec -it twenty-server-1 npx nx database:reset
``` ```
### Cannot connect to server, running behind a reverse proxy ### Cannot connect to server, running behind a reverse proxy

View File

@@ -4,16 +4,16 @@
"private": true, "private": true,
"scripts": { "scripts": {
"nx": "NX_DEFAULT_PROJECT=twenty-docs node ../../node_modules/nx/bin/nx.js", "nx": "NX_DEFAULT_PROJECT=twenty-docs node ../../node_modules/nx/bin/nx.js",
"docusaurus": "docusaurus", "docusaurus": "npx docusaurus",
"start": "docusaurus start --host 0.0.0.0 --port 5001", "start": "npx docusaurus start --host 0.0.0.0 --port 5001",
"build": "docusaurus build", "build": "npx docusaurus build",
"swizzle": "docusaurus swizzle", "swizzle": "npx docusaurus swizzle",
"deploy": "docusaurus deploy", "deploy": "npx docusaurus deploy",
"clear": "docusaurus clear", "clear": "npx docusaurus clear",
"serve": "docusaurus serve", "serve": "npx docusaurus serve",
"write-translations": "docusaurus write-translations", "write-translations": "npx docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids", "write-heading-ids": "npx docusaurus write-heading-ids",
"typecheck": "tsc" "typecheck": "npx tsc"
}, },
"overrides": { "overrides": {
"trim": "^0.0.3", "trim": "^0.0.3",

View File

@@ -7,7 +7,6 @@
"build": "npx vite build && sh ./scripts/inject-runtime-env.sh", "build": "npx vite build && sh ./scripts/inject-runtime-env.sh",
"build:sourcemaps": "VITE_BUILD_SOURCEMAP=true NODE_OPTIONS=--max-old-space-size=3000 npx nx build", "build:sourcemaps": "VITE_BUILD_SOURCEMAP=true NODE_OPTIONS=--max-old-space-size=3000 npx nx build",
"start:prod": "NODE_ENV=production npx vite --host", "start:prod": "NODE_ENV=production npx vite --host",
"storybook:build": "npx storybook build",
"tsup": "npx tsup" "tsup": "npx tsup"
}, },
"engines": { "engines": {

View File

@@ -29,10 +29,10 @@
"options": { "options": {
"cwd": "{projectRoot}", "cwd": "{projectRoot}",
"command": "tsc -b tsconfig.json", "command": "tsc -b tsconfig.json",
"incremental": true "args": ["--incremental"]
}, },
"configurations": { "configurations": {
"ci": { "incremental": false }, "ci": { "args": [] },
"watch": { "watch": true } "watch": { "watch": true }
} }
}, },
@@ -91,6 +91,14 @@
"watch": { "watch": true } "watch": { "watch": true }
} }
}, },
"storybook:build": {
"executor": "@nx/storybook:build",
"outputs": ["{options.outputDir}"],
"options": {
"outputDir": "{projectRoot}/storybook-static",
"configDir": "{projectRoot}/.storybook"
}
},
"storybook:dev": { "storybook:dev": {
"executor": "@nx/storybook:storybook", "executor": "@nx/storybook:storybook",
"options": { "options": {
@@ -102,8 +110,8 @@
"executor": "@nx/web:file-server", "executor": "@nx/web:file-server",
"options": { "options": {
"buildTarget": "twenty-front:storybook:build", "buildTarget": "twenty-front:storybook:build",
"staticFilePath": "{projectRoot}/storybook-static",
"port": 6006, "port": 6006,
"staticFilePath": "{projectRoot}/storybook-static",
"watch": false "watch": false
} }
}, },

View File

@@ -0,0 +1,5 @@
import { ThemeType } from 'twenty-ui';
declare module '@emotion/react' {
export interface Theme extends ThemeType {}
}

View File

@@ -21,7 +21,6 @@ import { DialogManagerScope } from '@/ui/feedback/dialog-manager/scopes/DialogMa
import { SnackBarProvider } from '@/ui/feedback/snack-bar-manager/components/SnackBarProvider'; import { SnackBarProvider } from '@/ui/feedback/snack-bar-manager/components/SnackBarProvider';
import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope'; import { SnackBarProviderScope } from '@/ui/feedback/snack-bar-manager/scopes/SnackBarProviderScope';
import { AppThemeProvider } from '@/ui/theme/components/AppThemeProvider'; import { AppThemeProvider } from '@/ui/theme/components/AppThemeProvider';
import { ThemeType } from '@/ui/theme/constants/ThemeLight';
import { UserProvider } from '@/users/components/UserProvider'; import { UserProvider } from '@/users/components/UserProvider';
import { UserProviderEffect } from '@/users/components/UserProviderEffect'; import { UserProviderEffect } from '@/users/components/UserProviderEffect';
import { PageChangeEffect } from '~/effect-components/PageChangeEffect'; import { PageChangeEffect } from '~/effect-components/PageChangeEffect';
@@ -82,7 +81,3 @@ root.render(
</AppErrorBoundary> </AppErrorBoundary>
</RecoilRoot>, </RecoilRoot>,
); );
declare module '@emotion/react' {
export interface Theme extends ThemeType {}
}

View File

@@ -1,7 +1,6 @@
{ {
"extends": "./tsconfig.json", "extends": "./tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../dist/out-tsc",
"types": ["node"] "types": ["node"]
}, },
"exclude": [ "exclude": [
@@ -13,5 +12,11 @@
"**/*.test.ts", "**/*.test.ts",
"**/*.test.tsx" "**/*.test.tsx"
], ],
"include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] "include": [
"src/**/*.js",
"src/**/*.jsx",
"src/**/*.d.ts",
"src/**/*.ts",
"src/**/*.tsx"
]
} }

View File

@@ -19,6 +19,7 @@
"noUnusedParameters": false, "noUnusedParameters": false,
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"forceConsistentCasingInFileNames": true, "forceConsistentCasingInFileNames": true,
"outDir": "../../dist/out-tsc",
"paths": { "paths": {
"@/*": ["packages/twenty-front/src/modules/*"], "@/*": ["packages/twenty-front/src/modules/*"],
"~/*": ["packages/twenty-front/src/*"], "~/*": ["packages/twenty-front/src/*"],
@@ -34,6 +35,9 @@
}, },
{ {
"path": "./tsconfig.spec.json" "path": "./tsconfig.spec.json"
},
{
"path": "./tsconfig.storybook.json"
} }
], ],
"extends": "../../tsconfig.base.json" "extends": "../../tsconfig.base.json"

View File

@@ -1,19 +1,15 @@
{ {
"extends": "./tsconfig.json", "extends": "./tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../dist/out-tsc",
"types": ["jest", "node"] "types": ["jest", "node"]
}, },
"include": [ "include": [
".storybook/**/*",
"**/__mocks__/**/*", "**/__mocks__/**/*",
"jest.config.ts", "jest.config.ts",
"setupTests.ts", "setupTests.ts",
"src/**/*.d.ts", "src/**/*.d.ts",
"src/**/*.spec.ts", "src/**/*.spec.ts",
"src/**/*.spec.tsx", "src/**/*.spec.tsx",
"src/**/*.stories.ts",
"src/**/*.stories.tsx",
"src/**/*.test.ts", "src/**/*.test.ts",
"src/**/*.test.tsx", "src/**/*.test.tsx",
"tsup.config.ts", "tsup.config.ts",

View File

@@ -0,0 +1,14 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"emitDecoratorMetadata": true
},
"include": [
".storybook/*.ts",
".storybook/*.tsx",
"src/**/*.d.ts",
"src/**/*.stories.mdx",
"src/**/*.stories.ts",
"src/**/*.stories.tsx"
]
}

View File

@@ -4,5 +4,5 @@
DIR="$(cd "$(dirname "$0")" && pwd)" DIR="$(cd "$(dirname "$0")" && pwd)"
source $DIR/set-env-test.sh source $DIR/set-env-test.sh
yarn nx database:reset npx nx database:reset
yarn nx jest --config ./test/jest-e2e.json npx nx jest --config ./test/jest-e2e.json

View File

@@ -4,12 +4,12 @@
"private": true, "private": true,
"scripts": { "scripts": {
"nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js", "nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js",
"dev": "next dev", "dev": "npx next dev",
"build": "next build", "build": "npx next build",
"start": "next start", "start": "npx next start",
"lint": "next lint", "lint": "npx next lint",
"database:generate:pg": "drizzle-kit generate:pg --config=src/database/postgres/drizzle-posgres.config.ts", "database:generate:pg": "npx drizzle-kit generate:pg --config=src/database/postgres/drizzle-posgres.config.ts",
"database:generate:sqlite": "drizzle-kit generate:sqlite --config=src/database/sqlite/drizzle-sqlite.config.ts" "database:generate:sqlite": "npx drizzle-kit generate:sqlite --config=src/database/sqlite/drizzle-sqlite.config.ts"
}, },
"dependencies": { "dependencies": {
"postgres": "^3.4.3" "postgres": "^3.4.3"

View File

@@ -1,12 +0,0 @@
{
"name": "twenty",
"$schema": "node_modules/nx/schemas/project-schema.json",
"targets": {
"start": {
"executor": "nx:run-script",
"options": {
"command": "nx run-many -t start -p twenty-server twenty-front"
}
}
}
}