Skip to content

Project references, builds project multiple times just for adding a space ? #26545

@iangregsondev

Description

@iangregsondev

Adding a space to a file in pkg2 causes multiple builds of itself and pkg1 (pkg1 has pkg2 as a dependency)

I have setup the new project references. I have 2 simple pkg folders, pkg1 has a dependency on pkg2.

here is the pkg1 tsconfig

{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "target": "es2018",
    "skipLibCheck": true,
    "lib": [
      "esnext"
    ],
    "rootDir": "src",
    "outDir": "lib",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "paths": {
      "@test/pkg2": ["./packages/pkg2/src"]
    }
  },
  "references": [
    { "path": "../pkg2" }
  ],
  "exclude": ["node_modules", "lib"]
}

and pkg2 (has composite set)

{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "composite":true,
    "target": "es2018",
    "skipLibCheck": true,
    "lib": [
      "esnext"
    ],
    "rootDir": "src",
    "outDir": "lib",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
  },
  "exclude": ["node_modules", "lib"]
}

Code

tsc -b --verbose --watch

produces multiple build steps, seems pkg1 and pkg2 are built multiple times.

Here is a output for placing a space inside the index.ts file - found in pkg2.

message TS6350: Project '../pkg2/tsconfig.json' is out of date because oldest output '../pkg2/lib/index.js' is older than newest input '../pkg2/src/index.ts'

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg2/tsconfig.json'...

message TS6350: Project 'tsconfig.json' is out of date because oldest output 'lib/index.js' is older than newest input 'src/index.ts'

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg2/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg2/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg2/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg2/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

message TS6358: Building project '/Users/ian/Development/Scratch/lerna-new-test/packages/pkg1/tsconfig.json'...

This seems to be causing a chain of builds ?

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions