@nx/dotnet 0.0.1 → 22.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -4
- package/README.md__tmpl__ +70 -0
- package/dist/analyzer/analyzer-client.d.ts +39 -0
- package/dist/analyzer/analyzer-client.d.ts.map +1 -0
- package/dist/analyzer/analyzer-client.js +227 -0
- package/dist/generators/init/init.d.ts +7 -0
- package/dist/generators/init/init.d.ts.map +1 -0
- package/dist/generators/init/init.js +107 -0
- package/dist/generators/init/schema.d.ts +6 -0
- package/dist/generators/init/schema.json +34 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/lib/Microsoft.Build.Locator.dll +0 -0
- package/dist/lib/MsbuildAnalyzer +0 -0
- package/dist/lib/MsbuildAnalyzer.deps.json +476 -0
- package/dist/lib/MsbuildAnalyzer.dll +0 -0
- package/dist/lib/MsbuildAnalyzer.dll.config +629 -0
- package/dist/lib/MsbuildAnalyzer.pdb +0 -0
- package/dist/lib/MsbuildAnalyzer.runtimeconfig.json +14 -0
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +3 -2
- package/dist/plugins/create-dependencies.d.ts +4 -0
- package/dist/plugins/create-dependencies.d.ts.map +1 -0
- package/dist/plugins/create-dependencies.js +47 -0
- package/dist/{src/plugins/plugin.d.ts → plugins/create-nodes.d.ts} +2 -3
- package/dist/plugins/create-nodes.d.ts.map +1 -0
- package/dist/plugins/create-nodes.js +48 -0
- package/dist/plugins/plugin.d.ts +5 -0
- package/dist/plugins/plugin.d.ts.map +1 -0
- package/dist/plugins/plugin.js +14 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/has-dotnet-plugin.d.ts +3 -0
- package/dist/utils/has-dotnet-plugin.d.ts.map +1 -0
- package/dist/utils/has-dotnet-plugin.js +8 -0
- package/dist/utils/versions.d.ts +2 -0
- package/dist/utils/versions.d.ts.map +1 -0
- package/dist/utils/versions.js +5 -0
- package/generators.json +10 -0
- package/migrations.json +4 -0
- package/package.json +48 -59
- package/dist/package.json +0 -84
- package/dist/src/index.d.ts +0 -2
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -7
- package/dist/src/plugins/plugin.d.ts.map +0 -1
- package/dist/src/plugins/plugin.js +0 -130
- package/dist/src/utils/cache.d.ts.map +0 -1
- package/dist/src/utils/dependency-detection.d.ts +0 -5
- package/dist/src/utils/dependency-detection.d.ts.map +0 -1
- package/dist/src/utils/dependency-detection.js +0 -58
- package/dist/src/utils/dotnet-cli.d.ts +0 -9
- package/dist/src/utils/dotnet-cli.d.ts.map +0 -1
- package/dist/src/utils/dotnet-cli.js +0 -39
- package/dist/src/utils/dotnet-project-parser.d.ts +0 -13
- package/dist/src/utils/dotnet-project-parser.d.ts.map +0 -1
- package/dist/src/utils/dotnet-project-parser.js +0 -83
- package/dist/src/utils/logger.d.ts +0 -3
- package/dist/src/utils/logger.d.ts.map +0 -1
- package/dist/src/utils/logger.js +0 -24
- package/dist/src/utils/target-builder.d.ts +0 -12
- package/dist/src/utils/target-builder.d.ts.map +0 -1
- package/dist/src/utils/target-builder.js +0 -525
- package/plugin.ts +0 -5
- package/src/index.ts +0 -6
- package/src/plugins/plugin.ts +0 -230
- package/src/utils/cache.ts +0 -19
- package/src/utils/dependency-detection.ts +0 -84
- package/src/utils/dotnet-cli.ts +0 -52
- package/src/utils/dotnet-project-parser.ts +0 -105
- package/src/utils/logger.ts +0 -24
- package/src/utils/target-builder.ts +0 -657
- package/tsconfig.json +0 -16
- package/tsconfig.lib.json +0 -21
- /package/dist/{src/utils → utils}/cache.d.ts +0 -0
- /package/dist/{src/utils → utils}/cache.js +0 -0
|
@@ -1,525 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildDotNetTargets = buildDotNetTargets;
|
|
4
|
-
const node_path_1 = require("node:path");
|
|
5
|
-
const get_named_inputs_1 = require("@nx/devkit/src/utils/get-named-inputs");
|
|
6
|
-
const dotnet_project_parser_1 = require("./dotnet-project-parser");
|
|
7
|
-
async function buildDotNetTargets(projectRoot, projectFiles, options, context) {
|
|
8
|
-
const namedInputs = (0, get_named_inputs_1.getNamedInputs)(projectRoot, context);
|
|
9
|
-
const targets = {};
|
|
10
|
-
let metadata;
|
|
11
|
-
const hasMultipleProjects = projectFiles.length > 1;
|
|
12
|
-
// Collect information about all projects in this directory
|
|
13
|
-
const projectInfos = projectFiles.map((projectFile) => ({
|
|
14
|
-
file: projectFile,
|
|
15
|
-
fileName: (0, node_path_1.basename)(projectFile),
|
|
16
|
-
projectName: (0, dotnet_project_parser_1.extractProjectNameFromFile)((0, node_path_1.basename)(projectFile)),
|
|
17
|
-
info: (0, dotnet_project_parser_1.parseProjectFile)((0, node_path_1.join)(context.workspaceRoot, projectFile)),
|
|
18
|
-
}));
|
|
19
|
-
// Aggregate technology detection from all projects
|
|
20
|
-
const technologies = new Set(['dotnet']);
|
|
21
|
-
let hasTestProjects = false;
|
|
22
|
-
let hasExecutableProjects = false;
|
|
23
|
-
let hasLibraryProjects = false;
|
|
24
|
-
for (const { info } of projectInfos) {
|
|
25
|
-
switch (info.projectType) {
|
|
26
|
-
case 'csharp':
|
|
27
|
-
technologies.add('csharp');
|
|
28
|
-
break;
|
|
29
|
-
case 'fsharp':
|
|
30
|
-
technologies.add('fsharp');
|
|
31
|
-
break;
|
|
32
|
-
case 'vb':
|
|
33
|
-
technologies.add('vb');
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
if (info.isTestProject) {
|
|
37
|
-
technologies.add('test');
|
|
38
|
-
hasTestProjects = true;
|
|
39
|
-
}
|
|
40
|
-
if (info.isExecutable) {
|
|
41
|
-
hasExecutableProjects = true;
|
|
42
|
-
}
|
|
43
|
-
if (!info.isExecutable && !info.isTestProject) {
|
|
44
|
-
hasLibraryProjects = true;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const technologiesArray = Array.from(technologies);
|
|
48
|
-
metadata = { technologies: technologiesArray };
|
|
49
|
-
const baseInputs = 'production' in namedInputs
|
|
50
|
-
? ['default', '^production']
|
|
51
|
-
: ['default', '^default'];
|
|
52
|
-
// Build restore targets
|
|
53
|
-
addRestoreTargets(targets, projectInfos, options, hasMultipleProjects, technologiesArray);
|
|
54
|
-
// Build targets
|
|
55
|
-
addBuildTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologiesArray);
|
|
56
|
-
// Test targets
|
|
57
|
-
if (hasTestProjects) {
|
|
58
|
-
addTestTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologiesArray);
|
|
59
|
-
}
|
|
60
|
-
// Clean targets
|
|
61
|
-
addCleanTargets(targets, projectInfos, options, hasMultipleProjects, technologiesArray);
|
|
62
|
-
// Publish targets
|
|
63
|
-
if (hasExecutableProjects) {
|
|
64
|
-
addPublishTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologiesArray);
|
|
65
|
-
}
|
|
66
|
-
// Pack targets
|
|
67
|
-
if (hasLibraryProjects) {
|
|
68
|
-
addPackTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologiesArray);
|
|
69
|
-
}
|
|
70
|
-
return { targets, metadata };
|
|
71
|
-
}
|
|
72
|
-
function addRestoreTargets(targets, projectInfos, options, hasMultipleProjects, technologies) {
|
|
73
|
-
if (hasMultipleProjects) {
|
|
74
|
-
// Create project-specific restore targets
|
|
75
|
-
for (const { fileName, projectName, info } of projectInfos) {
|
|
76
|
-
const projectSpecificRestoreTarget = `${options.restoreTargetName}:${projectName}`;
|
|
77
|
-
targets[projectSpecificRestoreTarget] = {
|
|
78
|
-
command: 'dotnet restore',
|
|
79
|
-
options: {
|
|
80
|
-
cwd: '{projectRoot}',
|
|
81
|
-
args: [fileName],
|
|
82
|
-
},
|
|
83
|
-
cache: true,
|
|
84
|
-
inputs: [
|
|
85
|
-
'{projectRoot}/**/*.{cs,csproj,fs,fsproj,vb,vbproj}',
|
|
86
|
-
// @todo(@AgentEnder): we should include these, but right now we aren't adding them to graph.
|
|
87
|
-
// { externalDependencies: info.packageReferences },
|
|
88
|
-
],
|
|
89
|
-
outputs: ['{projectRoot}/obj'],
|
|
90
|
-
metadata: {
|
|
91
|
-
technologies,
|
|
92
|
-
description: `Restore dependencies for ${fileName}`,
|
|
93
|
-
help: {
|
|
94
|
-
command: 'dotnet restore --help',
|
|
95
|
-
example: {},
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
// Create umbrella restore target
|
|
101
|
-
targets[options.restoreTargetName] = {
|
|
102
|
-
dependsOn: [`${options.restoreTargetName}:*`],
|
|
103
|
-
cache: false,
|
|
104
|
-
metadata: {
|
|
105
|
-
technologies,
|
|
106
|
-
description: 'Restore all .NET projects in this directory',
|
|
107
|
-
help: {
|
|
108
|
-
command: 'dotnet restore --help',
|
|
109
|
-
example: {},
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
const { info } = projectInfos[0];
|
|
116
|
-
targets[options.restoreTargetName] = {
|
|
117
|
-
command: 'dotnet restore',
|
|
118
|
-
options: {
|
|
119
|
-
cwd: '{projectRoot}',
|
|
120
|
-
},
|
|
121
|
-
cache: true,
|
|
122
|
-
inputs: [
|
|
123
|
-
'{projectRoot}/**/*.{cs,csproj,fs,fsproj,vb,vbproj}',
|
|
124
|
-
// { externalDependencies: info.packageReferences },
|
|
125
|
-
],
|
|
126
|
-
outputs: ['{projectRoot}/obj'],
|
|
127
|
-
metadata: {
|
|
128
|
-
technologies,
|
|
129
|
-
description: 'Restore .NET dependencies',
|
|
130
|
-
help: {
|
|
131
|
-
command: 'dotnet restore --help',
|
|
132
|
-
example: {},
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
function addBuildTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologies) {
|
|
139
|
-
if (hasMultipleProjects) {
|
|
140
|
-
// Create project-specific build targets
|
|
141
|
-
for (const { fileName, projectName } of projectInfos) {
|
|
142
|
-
const projectSpecificBuildTarget = `${options.buildTargetName}:${projectName}`;
|
|
143
|
-
targets[projectSpecificBuildTarget] = {
|
|
144
|
-
command: 'dotnet build',
|
|
145
|
-
options: {
|
|
146
|
-
cwd: '{projectRoot}',
|
|
147
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
148
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
149
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
150
|
-
args: [fileName, '--no-restore', '--no-dependencies'],
|
|
151
|
-
},
|
|
152
|
-
dependsOn: [`${options.restoreTargetName}:${projectName}`, '^build'],
|
|
153
|
-
cache: true,
|
|
154
|
-
inputs: baseInputs,
|
|
155
|
-
outputs: [
|
|
156
|
-
'{projectRoot}/bin',
|
|
157
|
-
'{projectRoot}/obj',
|
|
158
|
-
'{workspaceRoot}/artifacts/bin/{projectName}',
|
|
159
|
-
'{workspaceRoot}/artifacts/obj/{projectName}',
|
|
160
|
-
],
|
|
161
|
-
metadata: {
|
|
162
|
-
technologies,
|
|
163
|
-
description: `Build the ${fileName} project`,
|
|
164
|
-
help: {
|
|
165
|
-
command: 'dotnet build --help',
|
|
166
|
-
example: {
|
|
167
|
-
options: {
|
|
168
|
-
configuration: 'Release',
|
|
169
|
-
},
|
|
170
|
-
},
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
// Create umbrella build target
|
|
176
|
-
targets[options.buildTargetName] = {
|
|
177
|
-
dependsOn: [`${options.buildTargetName}:*`],
|
|
178
|
-
cache: false,
|
|
179
|
-
metadata: {
|
|
180
|
-
technologies,
|
|
181
|
-
description: 'Build all .NET projects in this directory',
|
|
182
|
-
help: {
|
|
183
|
-
command: 'dotnet build --help',
|
|
184
|
-
example: {
|
|
185
|
-
options: {
|
|
186
|
-
configuration: 'Release',
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
targets[options.buildTargetName] = {
|
|
195
|
-
command: 'dotnet build',
|
|
196
|
-
options: {
|
|
197
|
-
cwd: '{projectRoot}',
|
|
198
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
199
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
200
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
201
|
-
args: ['--no-restore', '--no-dependencies'],
|
|
202
|
-
},
|
|
203
|
-
dependsOn: [options.restoreTargetName, '^build'],
|
|
204
|
-
cache: true,
|
|
205
|
-
inputs: baseInputs,
|
|
206
|
-
outputs: ['{projectRoot}/bin', '{projectRoot}/obj'],
|
|
207
|
-
metadata: {
|
|
208
|
-
technologies,
|
|
209
|
-
description: 'Build the .NET project',
|
|
210
|
-
help: {
|
|
211
|
-
command: 'dotnet build --help',
|
|
212
|
-
example: {
|
|
213
|
-
options: {
|
|
214
|
-
configuration: 'Release',
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
},
|
|
218
|
-
},
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
function addTestTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologies) {
|
|
223
|
-
if (hasMultipleProjects) {
|
|
224
|
-
// Create project-specific test targets for each test project
|
|
225
|
-
for (const { fileName, projectName, info } of projectInfos) {
|
|
226
|
-
if (info.isTestProject) {
|
|
227
|
-
const projectSpecificTestTarget = `${options.testTargetName}:${projectName}`;
|
|
228
|
-
targets[projectSpecificTestTarget] = {
|
|
229
|
-
command: 'dotnet test',
|
|
230
|
-
options: {
|
|
231
|
-
cwd: '{projectRoot}',
|
|
232
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
233
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
234
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
235
|
-
args: [fileName, '--no-dependencies', '--no-build'],
|
|
236
|
-
},
|
|
237
|
-
dependsOn: [`${options.buildTargetName}:${projectName}`],
|
|
238
|
-
cache: true,
|
|
239
|
-
inputs: [
|
|
240
|
-
...baseInputs,
|
|
241
|
-
// { externalDependencies: info.packageReferences },
|
|
242
|
-
],
|
|
243
|
-
outputs: ['{projectRoot}/TestResults'],
|
|
244
|
-
metadata: {
|
|
245
|
-
technologies,
|
|
246
|
-
description: `Run tests for ${fileName}`,
|
|
247
|
-
help: {
|
|
248
|
-
command: 'dotnet test --help',
|
|
249
|
-
example: {
|
|
250
|
-
options: {
|
|
251
|
-
logger: 'trx',
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
|
-
},
|
|
255
|
-
},
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
// Create umbrella test target
|
|
260
|
-
targets[options.testTargetName] = {
|
|
261
|
-
dependsOn: [`${options.testTargetName}:*`],
|
|
262
|
-
cache: false,
|
|
263
|
-
metadata: {
|
|
264
|
-
technologies,
|
|
265
|
-
description: 'Run all .NET tests in this directory',
|
|
266
|
-
help: {
|
|
267
|
-
command: 'dotnet test --help',
|
|
268
|
-
example: {
|
|
269
|
-
options: {
|
|
270
|
-
logger: 'trx',
|
|
271
|
-
},
|
|
272
|
-
},
|
|
273
|
-
},
|
|
274
|
-
},
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
const { info } = projectInfos[0];
|
|
279
|
-
targets[options.testTargetName] = {
|
|
280
|
-
command: 'dotnet test',
|
|
281
|
-
options: {
|
|
282
|
-
cwd: '{projectRoot}',
|
|
283
|
-
args: ['--no-build'],
|
|
284
|
-
},
|
|
285
|
-
dependsOn: [options.buildTargetName],
|
|
286
|
-
cache: true,
|
|
287
|
-
inputs: [
|
|
288
|
-
...baseInputs,
|
|
289
|
-
// { externalDependencies: info.packageReferences }
|
|
290
|
-
],
|
|
291
|
-
outputs: ['{projectRoot}/TestResults'],
|
|
292
|
-
metadata: {
|
|
293
|
-
technologies,
|
|
294
|
-
description: 'Run .NET tests',
|
|
295
|
-
help: {
|
|
296
|
-
command: 'dotnet test --help',
|
|
297
|
-
example: {
|
|
298
|
-
options: {
|
|
299
|
-
logger: 'trx',
|
|
300
|
-
},
|
|
301
|
-
},
|
|
302
|
-
},
|
|
303
|
-
},
|
|
304
|
-
};
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
function addCleanTargets(targets, projectInfos, options, hasMultipleProjects, technologies) {
|
|
308
|
-
if (hasMultipleProjects) {
|
|
309
|
-
// Create project-specific clean targets
|
|
310
|
-
for (const { fileName, projectName } of projectInfos) {
|
|
311
|
-
const projectSpecificCleanTarget = `${options.cleanTargetName}:${projectName}`;
|
|
312
|
-
targets[projectSpecificCleanTarget] = {
|
|
313
|
-
command: 'dotnet clean',
|
|
314
|
-
options: {
|
|
315
|
-
cwd: '{projectRoot}',
|
|
316
|
-
args: [fileName],
|
|
317
|
-
},
|
|
318
|
-
cache: false,
|
|
319
|
-
metadata: {
|
|
320
|
-
technologies,
|
|
321
|
-
description: `Clean ${fileName} build outputs`,
|
|
322
|
-
help: {
|
|
323
|
-
command: 'dotnet clean --help',
|
|
324
|
-
example: {},
|
|
325
|
-
},
|
|
326
|
-
},
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
// Create umbrella clean target
|
|
330
|
-
targets[options.cleanTargetName] = {
|
|
331
|
-
dependsOn: [`${options.cleanTargetName}:*`],
|
|
332
|
-
cache: false,
|
|
333
|
-
metadata: {
|
|
334
|
-
technologies,
|
|
335
|
-
description: 'Clean all .NET projects in this directory',
|
|
336
|
-
help: {
|
|
337
|
-
command: 'dotnet clean --help',
|
|
338
|
-
example: {},
|
|
339
|
-
},
|
|
340
|
-
},
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
targets[options.cleanTargetName] = {
|
|
345
|
-
command: 'dotnet clean',
|
|
346
|
-
options: {
|
|
347
|
-
cwd: '{projectRoot}',
|
|
348
|
-
},
|
|
349
|
-
cache: false,
|
|
350
|
-
metadata: {
|
|
351
|
-
technologies,
|
|
352
|
-
description: 'Clean .NET build outputs',
|
|
353
|
-
help: {
|
|
354
|
-
command: 'dotnet clean --help',
|
|
355
|
-
example: {},
|
|
356
|
-
},
|
|
357
|
-
},
|
|
358
|
-
};
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
function addPublishTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologies) {
|
|
362
|
-
if (hasMultipleProjects) {
|
|
363
|
-
// Create project-specific publish targets for executable projects
|
|
364
|
-
for (const { fileName, projectName, info } of projectInfos) {
|
|
365
|
-
if (info.isExecutable) {
|
|
366
|
-
const projectSpecificPublishTarget = `${options.publishTargetName}:${projectName}`;
|
|
367
|
-
targets[projectSpecificPublishTarget] = {
|
|
368
|
-
command: 'dotnet publish',
|
|
369
|
-
options: {
|
|
370
|
-
cwd: '{projectRoot}',
|
|
371
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
372
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
373
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
374
|
-
args: [fileName, '--no-dependencies'],
|
|
375
|
-
},
|
|
376
|
-
dependsOn: [`${options.buildTargetName}:${projectName}`],
|
|
377
|
-
cache: true,
|
|
378
|
-
inputs: baseInputs,
|
|
379
|
-
outputs: ['{projectRoot}/bin/*/publish'],
|
|
380
|
-
metadata: {
|
|
381
|
-
technologies,
|
|
382
|
-
description: `Publish ${fileName} for deployment`,
|
|
383
|
-
help: {
|
|
384
|
-
command: 'dotnet publish --help',
|
|
385
|
-
example: {
|
|
386
|
-
options: {
|
|
387
|
-
configuration: 'Release',
|
|
388
|
-
runtime: 'win-x64',
|
|
389
|
-
},
|
|
390
|
-
},
|
|
391
|
-
},
|
|
392
|
-
},
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
// Create umbrella publish target
|
|
397
|
-
targets[options.publishTargetName] = {
|
|
398
|
-
dependsOn: [`${options.publishTargetName}:*`],
|
|
399
|
-
cache: false,
|
|
400
|
-
metadata: {
|
|
401
|
-
technologies,
|
|
402
|
-
description: 'Publish all executable .NET projects',
|
|
403
|
-
help: {
|
|
404
|
-
command: 'dotnet publish --help',
|
|
405
|
-
example: {
|
|
406
|
-
options: {
|
|
407
|
-
configuration: 'Release',
|
|
408
|
-
runtime: 'win-x64',
|
|
409
|
-
},
|
|
410
|
-
},
|
|
411
|
-
},
|
|
412
|
-
},
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
|
-
else {
|
|
416
|
-
targets[options.publishTargetName] = {
|
|
417
|
-
command: 'dotnet publish',
|
|
418
|
-
options: {
|
|
419
|
-
cwd: '{projectRoot}',
|
|
420
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
421
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
422
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
423
|
-
args: ['--no-dependencies'],
|
|
424
|
-
},
|
|
425
|
-
dependsOn: [options.buildTargetName],
|
|
426
|
-
cache: true,
|
|
427
|
-
inputs: baseInputs,
|
|
428
|
-
outputs: ['{projectRoot}/bin/*/publish'],
|
|
429
|
-
metadata: {
|
|
430
|
-
technologies,
|
|
431
|
-
description: 'Publish .NET executable for deployment',
|
|
432
|
-
help: {
|
|
433
|
-
command: 'dotnet publish --help',
|
|
434
|
-
example: {
|
|
435
|
-
options: {
|
|
436
|
-
configuration: 'Release',
|
|
437
|
-
runtime: 'win-x64',
|
|
438
|
-
},
|
|
439
|
-
},
|
|
440
|
-
},
|
|
441
|
-
},
|
|
442
|
-
};
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
function addPackTargets(targets, projectInfos, options, hasMultipleProjects, baseInputs, technologies) {
|
|
446
|
-
if (hasMultipleProjects) {
|
|
447
|
-
// Create project-specific pack targets for library projects
|
|
448
|
-
for (const { fileName, projectName, info } of projectInfos) {
|
|
449
|
-
if (!info.isExecutable && !info.isTestProject) {
|
|
450
|
-
const projectSpecificPackTarget = `${options.packTargetName}:${projectName}`;
|
|
451
|
-
targets[projectSpecificPackTarget] = {
|
|
452
|
-
command: 'dotnet pack',
|
|
453
|
-
options: {
|
|
454
|
-
cwd: '{projectRoot}',
|
|
455
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
456
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
457
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
458
|
-
args: [fileName, '--no-dependencies'],
|
|
459
|
-
},
|
|
460
|
-
dependsOn: [`${options.buildTargetName}:${projectName}`],
|
|
461
|
-
cache: true,
|
|
462
|
-
inputs: baseInputs,
|
|
463
|
-
outputs: ['{projectRoot}/bin/*/*.nupkg'],
|
|
464
|
-
metadata: {
|
|
465
|
-
technologies,
|
|
466
|
-
description: `Create NuGet package for ${fileName}`,
|
|
467
|
-
help: {
|
|
468
|
-
command: 'dotnet pack --help',
|
|
469
|
-
example: {
|
|
470
|
-
options: {
|
|
471
|
-
configuration: 'Release',
|
|
472
|
-
},
|
|
473
|
-
},
|
|
474
|
-
},
|
|
475
|
-
},
|
|
476
|
-
};
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
// Create umbrella pack target
|
|
480
|
-
targets[options.packTargetName] = {
|
|
481
|
-
dependsOn: [`${options.packTargetName}:*`],
|
|
482
|
-
cache: false,
|
|
483
|
-
metadata: {
|
|
484
|
-
technologies,
|
|
485
|
-
description: 'Pack all .NET library projects',
|
|
486
|
-
help: {
|
|
487
|
-
command: 'dotnet pack --help',
|
|
488
|
-
example: {
|
|
489
|
-
options: {
|
|
490
|
-
configuration: 'Release',
|
|
491
|
-
},
|
|
492
|
-
},
|
|
493
|
-
},
|
|
494
|
-
},
|
|
495
|
-
};
|
|
496
|
-
}
|
|
497
|
-
else {
|
|
498
|
-
targets[options.packTargetName] = {
|
|
499
|
-
command: 'dotnet pack',
|
|
500
|
-
options: {
|
|
501
|
-
cwd: '{projectRoot}',
|
|
502
|
-
// .NET CLI generally will build dependencies and restore automatically,
|
|
503
|
-
// but Nx's task graph is already handling that so we skip it here to ensure
|
|
504
|
-
// we aren't rebuilding or restoring more than necessary.
|
|
505
|
-
args: ['--no-dependencies'],
|
|
506
|
-
},
|
|
507
|
-
dependsOn: [options.buildTargetName],
|
|
508
|
-
cache: true,
|
|
509
|
-
inputs: baseInputs,
|
|
510
|
-
outputs: ['{projectRoot}/bin/*/*.nupkg'],
|
|
511
|
-
metadata: {
|
|
512
|
-
technologies,
|
|
513
|
-
description: 'Create NuGet package',
|
|
514
|
-
help: {
|
|
515
|
-
command: 'dotnet pack --help',
|
|
516
|
-
example: {
|
|
517
|
-
options: {
|
|
518
|
-
configuration: 'Release',
|
|
519
|
-
},
|
|
520
|
-
},
|
|
521
|
-
},
|
|
522
|
-
},
|
|
523
|
-
};
|
|
524
|
-
}
|
|
525
|
-
}
|
package/plugin.ts
DELETED