@nx/angular 18.3.0-canary.20240402-120cde6 → 18.3.0-canary.20240404-3b182e4
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +9 -9
- package/src/builders/dev-server/lib/validate-options.js +1 -1
- package/src/generators/application/lib/add-e2e.js +5 -5
- package/src/generators/application/lib/normalize-options.js +14 -0
- package/src/generators/application/lib/normalized-schema.d.ts +3 -0
- package/src/generators/library/library.js +6 -1
- package/src/utils/{public-api.d.ts → index.d.ts} +5 -0
- package/src/utils/{public-api.js → index.js} +5 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/angular",
|
3
|
-
"version": "18.3.0-canary.
|
3
|
+
"version": "18.3.0-canary.20240404-3b182e4",
|
4
4
|
"private": false,
|
5
5
|
"description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
|
6
6
|
"repository": {
|
@@ -23,7 +23,7 @@
|
|
23
23
|
"./executors": "./executors.js",
|
24
24
|
"./tailwind": "./tailwind.js",
|
25
25
|
"./module-federation": "./module-federation/index.js",
|
26
|
-
"./src/utils": "./src/utils/
|
26
|
+
"./src/utils": "./src/utils/index.js",
|
27
27
|
"./plugins/component-testing": "./plugins/component-testing.js",
|
28
28
|
"./src/generators/utils": "./src/generators/utils/index.js",
|
29
29
|
"./src/generators/move/move-impl": "./src/generators/move/move-impl.js",
|
@@ -78,14 +78,14 @@
|
|
78
78
|
"tslib": "^2.3.0",
|
79
79
|
"webpack": "^5.80.0",
|
80
80
|
"webpack-merge": "^5.8.0",
|
81
|
-
"@nx/devkit": "18.3.0-canary.
|
82
|
-
"@nx/js": "18.3.0-canary.
|
83
|
-
"@nx/eslint": "18.3.0-canary.
|
84
|
-
"@nx/webpack": "18.3.0-canary.
|
85
|
-
"@nx/web": "18.3.0-canary.
|
86
|
-
"@nx/workspace": "18.3.0-canary.
|
81
|
+
"@nx/devkit": "18.3.0-canary.20240404-3b182e4",
|
82
|
+
"@nx/js": "18.3.0-canary.20240404-3b182e4",
|
83
|
+
"@nx/eslint": "18.3.0-canary.20240404-3b182e4",
|
84
|
+
"@nx/webpack": "18.3.0-canary.20240404-3b182e4",
|
85
|
+
"@nx/web": "18.3.0-canary.20240404-3b182e4",
|
86
|
+
"@nx/workspace": "18.3.0-canary.20240404-3b182e4",
|
87
87
|
"piscina": "^4.4.0",
|
88
|
-
"@nrwl/angular": "18.3.0-canary.
|
88
|
+
"@nrwl/angular": "18.3.0-canary.20240404-3b182e4"
|
89
89
|
},
|
90
90
|
"peerDependencies": {
|
91
91
|
"@angular-devkit/build-angular": ">= 15.0.0 < 18.0.0",
|
@@ -6,7 +6,7 @@ const semver_1 = require("semver");
|
|
6
6
|
const angular_version_utils_1 = require("../../../executors/utilities/angular-version-utils");
|
7
7
|
function validateOptions(options) {
|
8
8
|
const { major: angularMajorVersion, version: angularVersion } = (0, angular_version_utils_1.getInstalledAngularVersionInfo)();
|
9
|
-
if ((0, semver_1.lt)(angularVersion, '16.1.0') && options.forceEsbuild
|
9
|
+
if ((0, semver_1.lt)(angularVersion, '16.1.0') && options.forceEsbuild) {
|
10
10
|
throw new Error((0, devkit_1.stripIndents) `The "forceEsbuild" option is only supported in Angular >= 16.1.0. You are currently using "${angularVersion}".
|
11
11
|
You can resolve this error by removing the "forceEsbuild" option or by migrating to Angular 16.1.0.`);
|
12
12
|
}
|
@@ -27,8 +27,8 @@ async function addE2e(tree, options) {
|
|
27
27
|
linter: options.linter,
|
28
28
|
skipPackageJson: options.skipPackageJson,
|
29
29
|
skipFormat: true,
|
30
|
-
devServerTarget: `${options.name}:
|
31
|
-
baseUrl:
|
30
|
+
devServerTarget: `${options.name}:${options.e2eWebServerTarget}:development`,
|
31
|
+
baseUrl: options.e2eWebServerAddress,
|
32
32
|
rootProject: options.rootProject,
|
33
33
|
addPlugin,
|
34
34
|
});
|
@@ -50,8 +50,8 @@ async function addE2e(tree, options) {
|
|
50
50
|
js: false,
|
51
51
|
linter: options.linter,
|
52
52
|
setParserOptionsProject: options.setParserOptionsProject,
|
53
|
-
webServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx
|
54
|
-
webServerAddress:
|
53
|
+
webServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx ${options.e2eWebServerTarget} ${options.name}`,
|
54
|
+
webServerAddress: options.e2eWebServerAddress,
|
55
55
|
rootProject: options.rootProject,
|
56
56
|
addPlugin,
|
57
57
|
});
|
@@ -67,7 +67,7 @@ function addFileServerTarget(tree, options, targetName) {
|
|
67
67
|
executor: '@nx/web:file-server',
|
68
68
|
options: {
|
69
69
|
buildTarget: `${options.name}:build`,
|
70
|
-
port: options.
|
70
|
+
port: options.e2ePort,
|
71
71
|
staticFilePath: isUsingApplicationBuilder
|
72
72
|
? (0, devkit_1.joinPathFragments)(options.outputPath, 'browser')
|
73
73
|
: undefined,
|
@@ -17,8 +17,19 @@ async function normalizeOptions(host, options) {
|
|
17
17
|
});
|
18
18
|
options.rootProject = appProjectRoot === '.';
|
19
19
|
options.projectNameAndRootFormat = projectNameAndRootFormat;
|
20
|
+
const nxJson = (0, devkit_1.readNxJson)(host);
|
21
|
+
let e2eWebServerTarget = 'serve';
|
22
|
+
let e2ePort = options.port ?? 4200;
|
23
|
+
if (nxJson.targetDefaults?.[e2eWebServerTarget] &&
|
24
|
+
(nxJson.targetDefaults?.[e2eWebServerTarget].options?.port ||
|
25
|
+
nxJson.targetDefaults?.[e2eWebServerTarget].options?.env?.PORT)) {
|
26
|
+
e2ePort =
|
27
|
+
nxJson.targetDefaults?.[e2eWebServerTarget].options?.port ||
|
28
|
+
nxJson.targetDefaults?.[e2eWebServerTarget].options?.env?.PORT;
|
29
|
+
}
|
20
30
|
const e2eProjectName = options.rootProject ? 'e2e' : `${appProjectName}-e2e`;
|
21
31
|
const e2eProjectRoot = options.rootProject ? 'e2e' : `${appProjectRoot}-e2e`;
|
32
|
+
const e2eWebServerAddress = `http://localhost:${e2ePort}`;
|
22
33
|
const parsedTags = options.tags
|
23
34
|
? options.tags.split(',').map((s) => s.trim())
|
24
35
|
: [];
|
@@ -47,6 +58,9 @@ async function normalizeOptions(host, options) {
|
|
47
58
|
appProjectSourceRoot: `${appProjectRoot}/src`,
|
48
59
|
e2eProjectRoot,
|
49
60
|
e2eProjectName,
|
61
|
+
e2eWebServerAddress,
|
62
|
+
e2eWebServerTarget,
|
63
|
+
e2ePort,
|
50
64
|
parsedTags,
|
51
65
|
bundler,
|
52
66
|
outputPath: (0, devkit_1.joinPathFragments)('dist', !options.rootProject ? appProjectRoot : appProjectName),
|
@@ -10,6 +10,9 @@ export interface NormalizedSchema extends Schema {
|
|
10
10
|
appProjectSourceRoot: string;
|
11
11
|
e2eProjectName: string;
|
12
12
|
e2eProjectRoot: string;
|
13
|
+
e2eWebServerAddress: string;
|
14
|
+
e2eWebServerTarget: string;
|
15
|
+
e2ePort: number;
|
13
16
|
parsedTags: string[];
|
14
17
|
outputPath: string;
|
15
18
|
}
|
@@ -44,7 +44,11 @@ async function libraryGeneratorInternal(tree, schema) {
|
|
44
44
|
const options = await (0, normalize_options_1.normalizeOptions)(tree, schema);
|
45
45
|
const { libraryOptions } = options;
|
46
46
|
const pkgVersions = (0, version_utils_1.versions)(tree);
|
47
|
-
await (0, js_1.initGenerator)(tree, {
|
47
|
+
await (0, js_1.initGenerator)(tree, {
|
48
|
+
...libraryOptions,
|
49
|
+
js: false,
|
50
|
+
skipFormat: true,
|
51
|
+
});
|
48
52
|
await (0, init_1.default)(tree, { ...libraryOptions, skipFormat: true });
|
49
53
|
(0, ensure_angular_dependencies_1.ensureAngularDependencies)(tree);
|
50
54
|
const project = (0, add_project_1.addProject)(tree, libraryOptions);
|
@@ -65,6 +69,7 @@ async function libraryGeneratorInternal(tree, schema) {
|
|
65
69
|
await (0, setup_tailwind_1.default)(tree, {
|
66
70
|
project: libraryOptions.name,
|
67
71
|
skipFormat: true,
|
72
|
+
skipPackageJson: libraryOptions.skipPackageJson,
|
68
73
|
});
|
69
74
|
}
|
70
75
|
if (libraryOptions.buildable || libraryOptions.publishable) {
|
@@ -1,2 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* Note to developers: STOP! These exports end up as the public API of @nx/angular/src/utils.
|
3
|
+
*
|
4
|
+
* Try hard to not add to this API to reduce the surface area we need to maintain.
|
5
|
+
*/
|
1
6
|
export { isStandalone, addImportToComponent, addImportToDirective, addImportToPipe, addImportToModule, addProviderToBootstrapApplication, addProviderToAppConfig, addProviderToComponent, addProviderToModule, } from './nx-devkit/ast-utils';
|
2
7
|
export { addRoute, addProviderToRoute } from './nx-devkit/route-utils';
|
@@ -1,4 +1,9 @@
|
|
1
1
|
"use strict";
|
2
|
+
/**
|
3
|
+
* Note to developers: STOP! These exports end up as the public API of @nx/angular/src/utils.
|
4
|
+
*
|
5
|
+
* Try hard to not add to this API to reduce the surface area we need to maintain.
|
6
|
+
*/
|
2
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
8
|
exports.addProviderToRoute = exports.addRoute = exports.addProviderToModule = exports.addProviderToComponent = exports.addProviderToAppConfig = exports.addProviderToBootstrapApplication = exports.addImportToModule = exports.addImportToPipe = exports.addImportToDirective = exports.addImportToComponent = exports.isStandalone = void 0;
|
4
9
|
var ast_utils_1 = require("./nx-devkit/ast-utils");
|