- Fixes storybook coverage command: the coverage directory path was incorrect, but instead of failing `storybook:test --configuration=ci`, it was hanging indefinitely. - Switches back to `concurrently` to launch `storybook:static` and `storybook:test` in parallel, which allows to use options to explicitly kill `storybook:static` when `storybook:test` fails. - Moves `storybook:test --configuration=ci` to its own command `storybook:static:test`: used in the CI, and can be used locally to run storybook tests without having to launch `storybook:dev` first. - Creates command `storybook:coverage` and enables cache for this command. - Fixes Jest tests that were failing. - Improves caching conditions for some tasks (for instance, no need to invalidate Jest test cache if only Storybook story files were modified).
158 lines
4.3 KiB
JSON
158 lines
4.3 KiB
JSON
{
|
|
"name": "twenty-front",
|
|
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
"projectType": "application",
|
|
"tags": ["scope:frontend"],
|
|
"targets": {
|
|
"build": {
|
|
"outputs": ["{options.outputPath}"],
|
|
"options": {
|
|
"outputPath": "{projectRoot}/build"
|
|
}
|
|
},
|
|
"start": {
|
|
"executor": "@nx/vite:dev-server",
|
|
"options": {
|
|
"buildTarget": "twenty-front:build",
|
|
"hmr": true
|
|
}
|
|
},
|
|
"preview": {
|
|
"executor": "@nx/vite:preview-server",
|
|
"options": {
|
|
"buildTarget": "twenty-front:build",
|
|
"port": 3001,
|
|
"open": true
|
|
}
|
|
},
|
|
"reset:env": {
|
|
"executor": "nx:run-commands",
|
|
"inputs": ["{projectRoot}/.env.example"],
|
|
"outputs": ["{projectRoot}/.env"],
|
|
"cache": true,
|
|
"options": {
|
|
"cwd": "{projectRoot}",
|
|
"command": "cp .env.example .env"
|
|
}
|
|
},
|
|
"typecheck": {},
|
|
"lint": {
|
|
"options": {
|
|
"lintFilePatterns": [
|
|
"{projectRoot}/src/**/*.{ts,tsx,json}",
|
|
"{projectRoot}/package.json"
|
|
],
|
|
"maxWarnings": 0,
|
|
"reportUnusedDisableDirectives": "error"
|
|
},
|
|
"configurations": {
|
|
"ci": { "eslintConfig": "{projectRoot}/.eslintrc-ci.cjs" },
|
|
"fix": {}
|
|
}
|
|
},
|
|
"fmt": {
|
|
"options": {
|
|
"files": "src"
|
|
},
|
|
"configurations": {
|
|
"fix": {}
|
|
}
|
|
},
|
|
"test": {},
|
|
"storybook:build": {},
|
|
"storybook:build:scope": {
|
|
"executor": "nx:run-commands",
|
|
"options": {
|
|
"command": "nx storybook:build twenty-front"
|
|
},
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } }
|
|
}
|
|
},
|
|
"storybook:dev": {
|
|
"options": { "port": 6006 }
|
|
},
|
|
"storybook:dev:scope": {
|
|
"executor": "nx:run-commands",
|
|
"options": {
|
|
"command": "nx storybook:dev twenty-front"
|
|
},
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } }
|
|
}
|
|
},
|
|
"storybook:static": {
|
|
"options": {
|
|
"buildTarget": "twenty-front:storybook:build",
|
|
"port": 6006
|
|
}
|
|
},
|
|
"storybook:static:scope": {
|
|
"executor": "nx:run-commands",
|
|
"options": {
|
|
"command": "nx storybook:static twenty-front"
|
|
},
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } }
|
|
}
|
|
},
|
|
"storybook:coverage": {
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } }
|
|
}
|
|
},
|
|
"storybook:test": {
|
|
"options": {
|
|
"port": 6006
|
|
},
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } }
|
|
}
|
|
},
|
|
"storybook:static:test": {
|
|
"options": {
|
|
"commands": [
|
|
"npx concurrently --kill-others --success=first -n SB,TEST 'nx storybook:static {projectName} --port={args.port}' 'npx wait-on tcp:{args.port} && nx storybook:test {projectName} --port={args.port} --configuration={args.scope}'"
|
|
],
|
|
"port": 6006
|
|
},
|
|
"configurations": {
|
|
"docs": { "scope": "ui-docs" },
|
|
"modules": { "scope": "modules" },
|
|
"pages": { "scope": "pages" }
|
|
}
|
|
},
|
|
"graphql:generate": {
|
|
"executor": "nx:run-commands",
|
|
"defaultConfiguration": "data",
|
|
"options": {
|
|
"cwd": "{projectRoot}",
|
|
"command": "dotenv cross-var graphql-codegen -- --config={args.config}"
|
|
},
|
|
"configurations": {
|
|
"data": {
|
|
"config": "codegen.cjs"
|
|
},
|
|
"metadata": {
|
|
"config": "codegen-metadata.cjs"
|
|
}
|
|
}
|
|
},
|
|
"chromatic": {
|
|
"configurations": {
|
|
"ci": {}
|
|
}
|
|
}
|
|
}
|
|
}
|