mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 01:16:15 -08:00
Without CI, every web-e2e webServer has reuseExistingServer, so @nx/playwright infers a continuous web:serve dependency for the `pnpm nx run web:serve` entry. The mocks and the web backend launch as plain node processes with env, which no Nx task covers, so the plugin also marks the target non-parallel. Nx refuses a non-parallel task with continuous dependencies, and `nx run web-e2e:e2e` failed before running anything; CI passed only because CI=1 disables reuse and with it the inferred dependency. Give web-e2e:e2e an empty dependsOn so Playwright starts every server, as it already does in CI. The Angular dev-server runs inside the Nx process, so Playwright's process-group kill still stops it. Turn off the plugin's readiness gate, which no target consumes any more. Add `pnpm run e2e:task-graphs:validate`: it builds every Playwright target's task graph with Nx's own validation, with CI unset and set, and runs in the unit-and-typecheck job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
120 lines
3.5 KiB
JSON
120 lines
3.5 KiB
JSON
{
|
|
"$schema": "./node_modules/nx/schemas/nx-schema.json",
|
|
"namedInputs": {
|
|
"default": ["{projectRoot}/**/*", "sharedGlobals"],
|
|
"production": [
|
|
"default",
|
|
"!{projectRoot}/.eslintrc.json",
|
|
"!{projectRoot}/eslint.config.mjs",
|
|
"!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
|
|
"!{projectRoot}/tsconfig.spec.json",
|
|
"!{projectRoot}/jest.config.[jt]s",
|
|
"!{projectRoot}/src/test-setup.[jt]s",
|
|
"!{projectRoot}/test-setup.[jt]s"
|
|
],
|
|
"sharedGlobals": [
|
|
"{workspaceRoot}/.github/workflows/ci.yml",
|
|
"{workspaceRoot}/package.json"
|
|
]
|
|
},
|
|
"targetDefaults": {
|
|
"@angular/build:application": {
|
|
"cache": true,
|
|
"dependsOn": ["^build"],
|
|
"inputs": ["production", "^production"]
|
|
},
|
|
"@nx/eslint:lint": {
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"^default",
|
|
"{workspaceRoot}/.eslintrc.json",
|
|
"{workspaceRoot}/.eslintignore",
|
|
"{workspaceRoot}/eslint.config.mjs",
|
|
"{workspaceRoot}/tools/eslint-rules/**/*",
|
|
"{workspaceRoot}/tools/eslint/**/*"
|
|
]
|
|
},
|
|
"lint": {
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"{workspaceRoot}/.eslintrc.json",
|
|
"{workspaceRoot}/.eslintignore",
|
|
"{workspaceRoot}/eslint.config.mjs",
|
|
"{workspaceRoot}/tools/eslint-rules/**/*",
|
|
"{workspaceRoot}/tools/eslint/**/*"
|
|
]
|
|
},
|
|
"@nx/jest:jest": {
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"^production",
|
|
"{workspaceRoot}/jest.preset.js"
|
|
],
|
|
"options": {
|
|
"passWithNoTests": true
|
|
},
|
|
"configurations": {
|
|
"ci": {
|
|
"ci": true,
|
|
"codeCoverage": true
|
|
}
|
|
}
|
|
},
|
|
"@nx/js:tsc": {
|
|
"cache": true,
|
|
"dependsOn": ["^build"],
|
|
"inputs": ["production", "^production"]
|
|
},
|
|
"e2e-ci--src/*.e2e.ts": [
|
|
{
|
|
"filter": { "projects": ["electron-backend-e2e"] },
|
|
"dependsOn": [
|
|
{
|
|
"projects": ["electron-backend"],
|
|
"target": "build-e2e"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"filter": { "projects": ["web-e2e"] },
|
|
"dependsOn": []
|
|
}
|
|
]
|
|
},
|
|
"plugins": [
|
|
{
|
|
"plugin": "@nx/playwright/plugin",
|
|
"options": {
|
|
"targetName": "e2e",
|
|
"waitForWebServer": false
|
|
}
|
|
},
|
|
{
|
|
"plugin": "@nx/eslint/plugin",
|
|
"options": {
|
|
"targetName": "lint"
|
|
}
|
|
}
|
|
],
|
|
"generators": {
|
|
"@nx/angular:application": {
|
|
"e2eTestRunner": "playwright",
|
|
"linter": "eslint",
|
|
"style": "scss",
|
|
"unitTestRunner": "jest"
|
|
},
|
|
"@nx/angular:library": {
|
|
"linter": "eslint",
|
|
"unitTestRunner": "jest"
|
|
},
|
|
"@nx/angular:component": {
|
|
"style": "scss"
|
|
}
|
|
},
|
|
"defaultProject": "web",
|
|
"analytics": false
|
|
}
|