Skip to content

Commit b5b4cd5

Browse files
authored
fix(core): derive graph node type correctly when projectType is not set (#32018)
## Current Behavior When building the project graph nodes, the node `type` is always inferred as `lib` when `projectType` is not set. ## Expected Behavior When building the project graph nodes, the node `type` should be derived correctly using the same logic used by generators when `projectType` is not set. ## Related Issue(s) Fixes #31983
1 parent a8900e4 commit b5b4cd5

File tree

9 files changed

+128
-53
lines changed

9 files changed

+128
-53
lines changed

e2e/release/src/circular-dependencies.test.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ xdescribe('nx release circular dependencies', () => {
139139
"name": "@proj/{project-name}",
140140
- "version": "1.0.0",
141141
+ "version": "2.0.0",
142-
"scripts": {
142+
"exports": {
143143
144144
"dependencies": {
145145
- "@proj/{project-name}": "1.0.0"
@@ -152,7 +152,7 @@ xdescribe('nx release circular dependencies', () => {
152152
"name": "@proj/{project-name}",
153153
- "version": "1.0.0",
154154
+ "version": "2.0.0",
155-
"scripts": {
155+
"exports": {
156156
157157
"devDependencies": {
158158
- "@proj/{project-name}": "1.0.0"
@@ -321,7 +321,7 @@ xdescribe('nx release circular dependencies', () => {
321321
"name": "@proj/{project-name}",
322322
- "version": "1.0.0",
323323
+ "version": "2.0.0",
324-
"scripts": {
324+
"exports": {
325325
326326
"dependencies": {
327327
- "@proj/{project-name}": "1.0.0"
@@ -334,7 +334,7 @@ xdescribe('nx release circular dependencies', () => {
334334
"name": "@proj/{project-name}",
335335
- "version": "1.0.0",
336336
+ "version": "2.0.0",
337-
"scripts": {
337+
"exports": {
338338
339339
"devDependencies": {
340340
- "@proj/{project-name}": "1.0.0"
@@ -504,7 +504,7 @@ xdescribe('nx release circular dependencies', () => {
504504
"name": "@proj/{project-name}",
505505
- "version": "1.0.0",
506506
+ "version": "2.0.0",
507-
"scripts": {
507+
"exports": {
508508
509509
"dependencies": {
510510
- "@proj/{project-name}": "1.0.0"
@@ -517,7 +517,7 @@ xdescribe('nx release circular dependencies', () => {
517517
"name": "@proj/{project-name}",
518518
- "version": "1.0.0",
519519
+ "version": "2.0.0",
520-
"scripts": {
520+
"exports": {
521521
522522
"devDependencies": {
523523
- "@proj/{project-name}": "1.0.0"
@@ -681,7 +681,7 @@ xdescribe('nx release circular dependencies', () => {
681681
"name": "@proj/{project-name}",
682682
- "version": "1.0.0",
683683
+ "version": "2.0.0",
684-
"scripts": {
684+
"exports": {
685685
686686
}
687687
+
@@ -807,7 +807,7 @@ xdescribe('nx release circular dependencies', () => {
807807
"name": "@proj/{project-name}",
808808
- "version": "1.0.0",
809809
+ "version": "2.0.0",
810-
"scripts": {
810+
"exports": {
811811
812812
"dependencies": {
813813
- "@proj/{project-name}": "1.0.0"
@@ -820,7 +820,7 @@ xdescribe('nx release circular dependencies', () => {
820820
"name": "@proj/{project-name}",
821821
- "version": "1.0.0",
822822
+ "version": "2.0.0",
823-
"scripts": {
823+
"exports": {
824824
825825
"devDependencies": {
826826
- "@proj/{project-name}": "1.0.0"
@@ -992,7 +992,7 @@ xdescribe('nx release circular dependencies', () => {
992992
"name": "@proj/{project-name}",
993993
- "version": "1.0.0",
994994
+ "version": "2.0.0",
995-
"scripts": {
995+
"exports": {
996996
997997
"dependencies": {
998998
- "@proj/{project-name}": "1.0.0"
@@ -1005,7 +1005,7 @@ xdescribe('nx release circular dependencies', () => {
10051005
"name": "@proj/{project-name}",
10061006
- "version": "1.0.0",
10071007
+ "version": "1.0.1",
1008-
"scripts": {
1008+
"exports": {
10091009
10101010
"devDependencies": {
10111011
- "@proj/{project-name}": "1.0.0"

e2e/release/src/independent-projects.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ describe('nx release - independent projects', () => {
134134
"name": "@proj/{project-name}",
135135
- "version": "0.0.0",
136136
+ "version": "999.9.9-package.1",
137-
"scripts": {
137+
"exports": {
138138
139139
140140
NX Staging changed files with git
@@ -162,7 +162,7 @@ describe('nx release - independent projects', () => {
162162
"name": "@proj/{project-name}",
163163
- "version": "0.0.0",
164164
+ "version": "999.9.9-package.2",
165-
"scripts": {
165+
"exports": {
166166
167167
}
168168
+
@@ -200,13 +200,13 @@ describe('nx release - independent projects', () => {
200200
"name": "@proj/{project-name}",
201201
- "version": "0.0.0",
202202
+ "version": "999.9.9-package.3",
203-
"scripts": {
203+
"exports": {
204204
205205
206206
"name": "@proj/{project-name}",
207207
- "version": "999.9.9-package.2",
208208
+ "version": "999.9.9",
209-
"scripts": {
209+
"exports": {
210210
211211
"dependencies": {
212212
- "@proj/{project-name}": "0.0.0"
@@ -249,7 +249,7 @@ describe('nx release - independent projects', () => {
249249
"name": "@proj/{project-name}",
250250
- "version": "999.9.9-version-git-operations-test.1",
251251
+ "version": "999.9.9-version-git-operations-test.2",
252-
"scripts": {
252+
"exports": {
253253
254254
255255
Skipped lock file update because {package-manager} workspaces are not enabled.
@@ -340,19 +340,19 @@ describe('nx release - independent projects', () => {
340340
"name": "@proj/{project-name}",
341341
- "version": "999.9.9-package.3",
342342
+ "version": "999.9.9-version-git-operations-test.3",
343-
"scripts": {
343+
"exports": {
344344
345345
346346
"name": "@proj/{project-name}",
347347
- "version": "999.9.9-version-git-operations-test.2",
348348
+ "version": "999.9.9-version-git-operations-test.3",
349-
"scripts": {
349+
"exports": {
350350
351351
352352
"name": "@proj/{project-name}",
353353
- "version": "999.9.9",
354354
+ "version": "999.9.9-version-git-operations-test.3",
355-
"scripts": {
355+
"exports": {
356356
357357
"dependencies": {
358358
- "@proj/{project-name}": "999.9.9-package.3"

e2e/release/src/multiple-release-branches.test.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -143,19 +143,19 @@ describe('nx release multiple release branches', () => {
143143
"name": "@proj/{project-name}",
144144
- "version": "0.0.0",
145145
+ "version": "0.0.7",
146-
"scripts": {
146+
"exports": {
147147
148148
149149
"name": "@proj/{project-name}",
150150
- "version": "0.0.0",
151151
+ "version": "0.0.7",
152-
"scripts": {
152+
"exports": {
153153
154154
155155
"name": "@proj/{project-name}",
156156
- "version": "0.0.0",
157157
+ "version": "0.0.7",
158-
"scripts": {
158+
"exports": {
159159
160160
161161
NX Committing changes with git
@@ -189,7 +189,7 @@ describe('nx release multiple release branches', () => {
189189
"name": "@proj/{project-name}",
190190
- "version": "0.0.7",
191191
+ "version": "0.1.0",
192-
"scripts": {
192+
"exports": {
193193
194194
}
195195
+
@@ -198,13 +198,13 @@ describe('nx release multiple release branches', () => {
198198
"name": "@proj/{project-name}",
199199
- "version": "0.0.7",
200200
+ "version": "0.1.0",
201-
"scripts": {
201+
"exports": {
202202
203203
204204
"name": "@proj/{project-name}",
205205
- "version": "0.0.7",
206206
+ "version": "0.1.0",
207-
"scripts": {
207+
"exports": {
208208
209209
210210
NX Committing changes with git
@@ -238,19 +238,19 @@ describe('nx release multiple release branches', () => {
238238
"name": "@proj/{project-name}",
239239
- "version": "0.0.7",
240240
+ "version": "0.0.8",
241-
"scripts": {
241+
"exports": {
242242
243243
244244
"name": "@proj/{project-name}",
245245
- "version": "0.0.7",
246246
+ "version": "0.0.8",
247-
"scripts": {
247+
"exports": {
248248
249249
250250
"name": "@proj/{project-name}",
251251
- "version": "0.0.7",
252252
+ "version": "0.0.8",
253-
"scripts": {
253+
"exports": {
254254
255255
256256
NX Committing changes with git
@@ -328,7 +328,7 @@ describe('nx release multiple release branches', () => {
328328
"name": "@proj/{project-name}",
329329
- "version": "0.0.0",
330330
+ "version": "0.1.0",
331-
"scripts": {
331+
"exports": {
332332
333333
}
334334
+
@@ -337,13 +337,13 @@ describe('nx release multiple release branches', () => {
337337
"name": "@proj/{project-name}",
338338
- "version": "0.0.0",
339339
+ "version": "0.1.0",
340-
"scripts": {
340+
"exports": {
341341
342342
343343
"name": "@proj/{project-name}",
344344
- "version": "0.0.0",
345345
+ "version": "0.1.0",
346-
"scripts": {
346+
"exports": {
347347
348348
349349
NX Committing changes with git
@@ -377,13 +377,13 @@ describe('nx release multiple release branches', () => {
377377
"name": "@proj/{project-name}",
378378
- "version": "0.0.0",
379379
+ "version": "1.0.0",
380-
"scripts": {
380+
"exports": {
381381
382382
383383
"name": "@proj/{project-name}",
384384
- "version": "0.0.0",
385385
+ "version": "1.0.0",
386-
"scripts": {
386+
"exports": {
387387
388388
}
389389
+
@@ -392,7 +392,7 @@ describe('nx release multiple release branches', () => {
392392
"name": "@proj/{project-name}",
393393
- "version": "0.0.0",
394394
+ "version": "1.0.0",
395-
"scripts": {
395+
"exports": {
396396
397397
398398
NX Committing changes with git

e2e/release/src/preserve-local-dependency-protocols.test.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,11 @@ describe('nx release preserve local dependency protocols', () => {
148148
"name": "@proj/{project-name}",
149149
- "version": "0.0.0",
150150
+ "version": "0.1.0",
151-
"scripts": {
151+
"exports": {
152152
"name": "@proj/{project-name}",
153153
- "version": "0.0.0",
154154
+ "version": "0.1.0",
155-
"scripts": {
155+
"exports": {
156156
"dependencies": {
157157
- "@proj/{project-name}": "workspace:*"
158158
+ "@proj/{project-name}": "0.1.0"
@@ -193,11 +193,11 @@ describe('nx release preserve local dependency protocols', () => {
193193
"name": "@proj/{project-name}",
194194
- "version": "0.0.0",
195195
+ "version": "0.1.0",
196-
"scripts": {
196+
"exports": {
197197
"name": "@proj/{project-name}",
198198
- "version": "0.0.0",
199199
+ "version": "0.1.0",
200-
"scripts": {
200+
"exports": {
201201
}
202202
+
203203
NX Updating PM lock file
@@ -220,6 +220,10 @@ describe('nx release preserve local dependency protocols', () => {
220220
dependencies: {
221221
@proj/{project-name}: workspace:*,
222222
},
223+
exports: {
224+
.: ./index.js,
225+
./package.json: ./package.json,
226+
},
223227
name: @proj/{project-name},
224228
scripts: {
225229
test: node index.js,
@@ -289,6 +293,10 @@ describe('nx release preserve local dependency protocols', () => {
289293
dependencies: {
290294
@proj/{project-name}: workspace:*,
291295
},
296+
exports: {
297+
.: ./index.js,
298+
./package.json: ./package.json,
299+
},
292300
name: @proj/{project-name},
293301
scripts: {
294302
test: node index.js,

packages/js/src/utils/typescript/ts-solution-setup.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,12 +282,19 @@ export function getProjectType(
282282
return 'library';
283283
if (tree.exists(joinPathFragments(projectRoot, 'tsconfig.app.json')))
284284
return 'application';
285-
// If there are no exports, assume it is an application since both buildable and non-buildable libraries have exports.
285+
// If it doesn't have any common library entry points, assume it is an application
286286
const packageJsonPath = joinPathFragments(projectRoot, 'package.json');
287287
const packageJson = tree.exists(packageJsonPath)
288288
? readJson(tree, joinPathFragments(projectRoot, 'package.json'))
289289
: null;
290-
if (!packageJson?.exports) return 'application';
290+
if (
291+
!packageJson?.exports &&
292+
!packageJson?.main &&
293+
!packageJson?.module &&
294+
!packageJson?.bin
295+
) {
296+
return 'application';
297+
}
291298
return 'library';
292299
}
293300

0 commit comments

Comments
 (0)