Skip to content

Commit cbf0411

Browse files
committed
feat(node): Support global file replacements
1 parent 58e99b0 commit cbf0411

File tree

7 files changed

+53
-11
lines changed

7 files changed

+53
-11
lines changed

.yarnrc

Whitespace-only changes.

.yarnrc.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/node/package.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"name": "@nrwl/node",
3-
"version": "0.0.1",
2+
"name": "@bafsllc/node",
3+
"version": "0.0.3",
44
"description": "Node Plugin for Nx",
55
"repository": {
66
"type": "git",
7-
"url": "git+https://github.com/nrwl/nx.git"
7+
"url": "git+https://github.com/bafsllc/nx.git"
88
},
99
"keywords": [
1010
"Monorepo",
@@ -19,7 +19,7 @@
1919
"author": "Victor Savkin",
2020
"license": "MIT",
2121
"bugs": {
22-
"url": "https://github.com/nrwl/nx/issues"
22+
"url": "https://github.com/bafsllc/nx/issues"
2323
},
2424
"homepage": "https://nx.dev",
2525
"schematics": "./collection.json",
@@ -51,5 +51,8 @@
5151
"webpack-merge": "4.2.1",
5252
"webpack-dev-server": "3.11.0",
5353
"webpack-node-externals": "1.7.2"
54+
},
55+
"publishConfig": {
56+
"registry": "https://npm.pkg.github.com"
5457
}
5558
}

packages/node/src/builders/build/build.impl.ts

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
import { BuilderContext, createBuilder } from '@angular-devkit/architect';
22
import { JsonObject, workspaces } from '@angular-devkit/core';
33
import { runWebpack, BuildResult } from '@angular-devkit/build-webpack';
4-
54
import { Observable, from } from 'rxjs';
65
import { join, resolve } from 'path';
76
import { map, concatMap } from 'rxjs/operators';
87
import { getNodeWebpackConfig } from '../../utils/node.config';
98
import { OUT_FILENAME } from '../../utils/config';
109
import { BuildBuilderOptions } from '../../utils/types';
11-
import { normalizeBuildOptions } from '../../utils/normalize';
10+
import {
11+
normalizeBuildOptions,
12+
normalizeFileReplacements,
13+
} from '../../utils/normalize';
1214
import { NodeJsSyncHost } from '@angular-devkit/core/node';
13-
import { createProjectGraph } from '@nrwl/workspace/src/core/project-graph';
15+
import {
16+
createProjectGraph,
17+
ProjectGraph,
18+
} from '@nrwl/workspace/src/core/project-graph';
1419
import {
1520
calculateProjectDependencies,
1621
createTmpTsConfig,
@@ -37,6 +42,20 @@ function run(
3742
options: JsonObject & BuildNodeBuilderOptions,
3843
context: BuilderContext
3944
): Observable<NodeBuildEvent> {
45+
const { configuration } = context.target;
46+
47+
if (options.useGlobalFileReplacements) {
48+
const projGraph = createProjectGraph();
49+
const fileReplacements = resolveAllProjectFileReplacements(
50+
projGraph,
51+
configuration
52+
);
53+
options.fileReplacements = normalizeFileReplacements(
54+
context.workspaceRoot,
55+
fileReplacements
56+
);
57+
}
58+
4059
if (!options.buildLibsFromSource) {
4160
const projGraph = createProjectGraph();
4261
const { target, dependencies } = calculateProjectDependencies(
@@ -60,7 +79,7 @@ function run(
6079
if (options.webpackConfig) {
6180
config = require(options.webpackConfig)(config, {
6281
options,
63-
configuration: context.target.configuration,
82+
configuration,
6483
});
6584
}
6685
return config;
@@ -99,3 +118,21 @@ async function getSourceRoot(context: BuilderContext) {
99118
throw new Error(message);
100119
}
101120
}
121+
122+
export function resolveAllProjectFileReplacements(
123+
projGraph: ProjectGraph,
124+
configuration: string
125+
) {
126+
const projects = Object.values(projGraph.nodes);
127+
const fileReplacements = projects.reduce((allReplacements, project) => {
128+
const projectReplacements =
129+
project?.data?.architect?.build?.configurations?.[configuration]
130+
?.fileReplacements;
131+
if (projectReplacements) {
132+
allReplacements.push(...projectReplacements);
133+
}
134+
return allReplacements;
135+
}, []);
136+
137+
return fileReplacements;
138+
}

packages/node/src/utils/normalize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ function normalizeAssets(
7575
});
7676
}
7777

78-
function normalizeFileReplacements(
78+
export function normalizeFileReplacements(
7979
root: string,
8080
fileReplacements: FileReplacement[]
8181
): FileReplacement[] {

packages/workspace/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,8 @@
7575
"inquirer": "^6.3.1",
7676
"resolve": "1.17.0",
7777
"tslib": "^2.0.0"
78+
},
79+
"publishConfig": {
80+
"registry": "https://npm.pkg.github.com"
7881
}
7982
}

workspace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
}
5757
},
5858
"lint": {
59-
"builder": "@nrwl/linter:eslint",
59+
"builder": "@bafsllc/linter:eslint",
6060
"options": {
6161
"lintFilePatterns": [
6262
"packages/nx/**/*.ts",

0 commit comments

Comments
 (0)