@nx/angular 16.8.0-beta.3 → 16.8.0-beta.4
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/migrations.json +9 -0
- package/package.json +11 -11
- package/plugins/component-testing.js +35 -5
- package/src/generators/add-linting/add-linting.js +5 -0
- package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +2 -0
- package/src/generators/component/component.js +1 -1
- package/src/generators/host/files/src/main.server.ts__tmpl__ +1 -1
- package/src/generators/host/lib/add-ssr.js +2 -0
- package/src/generators/remote/files/base/src/main.server.ts__tmpl__ +2 -2
- package/src/generators/remote/lib/add-ssr.js +4 -0
- package/src/generators/utils/testing.js +23 -22
- package/src/utils/backward-compatible-versions.js +2 -0
- package/src/utils/nx-devkit/testing.js +9 -9
- package/src/utils/versions.d.ts +1 -0
- package/src/utils/versions.js +2 -1
package/migrations.json
CHANGED
|
@@ -1345,6 +1345,15 @@
|
|
|
1345
1345
|
"alwaysAddToPackageJson": false
|
|
1346
1346
|
}
|
|
1347
1347
|
}
|
|
1348
|
+
},
|
|
1349
|
+
"16.8.0": {
|
|
1350
|
+
"version": "16.8.0-beta.2",
|
|
1351
|
+
"packages": {
|
|
1352
|
+
"esbuild": {
|
|
1353
|
+
"version": "^0.19.2",
|
|
1354
|
+
"alwaysAddToPackageJson": false
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1348
1357
|
}
|
|
1349
1358
|
}
|
|
1350
1359
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/angular",
|
|
3
|
-
"version": "16.8.0-beta.
|
|
3
|
+
"version": "16.8.0-beta.4",
|
|
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- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
|
|
6
6
|
"repository": {
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"migrations": "./migrations.json"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@nrwl/angular": "16.8.0-beta.
|
|
70
|
-
"@nx/cypress": "16.8.0-beta.
|
|
71
|
-
"@nx/devkit": "16.8.0-beta.
|
|
72
|
-
"@nx/jest": "16.8.0-beta.
|
|
73
|
-
"@nx/js": "16.8.0-beta.
|
|
74
|
-
"@nx/linter": "16.8.0-beta.
|
|
75
|
-
"@nx/webpack": "16.8.0-beta.
|
|
76
|
-
"@nx/workspace": "16.8.0-beta.
|
|
69
|
+
"@nrwl/angular": "16.8.0-beta.4",
|
|
70
|
+
"@nx/cypress": "16.8.0-beta.4",
|
|
71
|
+
"@nx/devkit": "16.8.0-beta.4",
|
|
72
|
+
"@nx/jest": "16.8.0-beta.4",
|
|
73
|
+
"@nx/js": "16.8.0-beta.4",
|
|
74
|
+
"@nx/linter": "16.8.0-beta.4",
|
|
75
|
+
"@nx/webpack": "16.8.0-beta.4",
|
|
76
|
+
"@nx/workspace": "16.8.0-beta.4",
|
|
77
77
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
78
78
|
"@typescript-eslint/type-utils": "^5.36.1",
|
|
79
79
|
"chalk": "^4.1.0",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"@angular-devkit/schematics": ">= 14.0.0 < 17.0.0",
|
|
94
94
|
"@nguniversal/builders": ">= 14.0.0 < 17.0.0",
|
|
95
95
|
"@schematics/angular": ">= 14.0.0 < 17.0.0",
|
|
96
|
-
"esbuild": "^0.
|
|
96
|
+
"esbuild": "^0.19.2",
|
|
97
97
|
"rxjs": "^6.5.3 || ^7.5.0"
|
|
98
98
|
},
|
|
99
99
|
"peerDependenciesMeta": {
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
"module": "fesm2022/nx-angular.mjs",
|
|
111
111
|
"typings": "index.d.ts",
|
|
112
112
|
"sideEffects": false,
|
|
113
|
-
"gitHead": "
|
|
113
|
+
"gitHead": "c9aad2dc8c2b34531cf61549bff872e68c481e4e"
|
|
114
114
|
}
|
|
@@ -60,9 +60,11 @@ ${e.stack ? e.stack : e}`);
|
|
|
60
60
|
return Object.assign(Object.assign({}, (0, cypress_preset_1.nxBaseCypressPreset)(pathToConfig, { testingType: 'component' })), {
|
|
61
61
|
// NOTE: cannot use a glob pattern since it will break cypress generated tsconfig.
|
|
62
62
|
specPattern: ['src/**/*.cy.ts', 'src/**/*.cy.js'],
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
indexHtmlFile: (
|
|
63
|
+
// Cy v12.17.0+ does not work with aboslute paths for index file
|
|
64
|
+
// but does with relative pathing, since relative path is the default location, we can omit it
|
|
65
|
+
indexHtmlFile: requiresAbsolutePath()
|
|
66
|
+
? (0, devkit_1.joinPathFragments)(ctContext.root, ctProjectConfig.root, 'cypress', 'support', 'component-index.html')
|
|
67
|
+
: undefined, devServer: Object.assign(Object.assign({}, {
|
|
66
68
|
framework: 'angular',
|
|
67
69
|
bundler: 'webpack',
|
|
68
70
|
}), { options: {
|
|
@@ -250,8 +252,7 @@ function getTempStylesForTailwind(ctExecutorContext) {
|
|
|
250
252
|
}
|
|
251
253
|
function isOffsetNeeded(ctExecutorContext, ctProjectConfig) {
|
|
252
254
|
try {
|
|
253
|
-
const
|
|
254
|
-
const supportsWorkspaceRoot = !!version && (0, semver_1.gte)(version, '12.9.0');
|
|
255
|
+
const supportsWorkspaceRoot = isCyVersionGreaterThanOrEqual('12.9.0');
|
|
255
256
|
// if using cypress <v12.9.0 then we require the offset
|
|
256
257
|
if (!supportsWorkspaceRoot) {
|
|
257
258
|
return true;
|
|
@@ -274,3 +275,32 @@ function isOffsetNeeded(ctExecutorContext, ctProjectConfig) {
|
|
|
274
275
|
return true;
|
|
275
276
|
}
|
|
276
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* check if the cypress version is able to understand absolute paths to the indexHtmlFile option
|
|
280
|
+
* this is required for nx to work with cypress <v12.17.0 since the relative pathing is causes issues
|
|
281
|
+
* with invalid pathing.
|
|
282
|
+
* v12.17.0+ works with relative pathing
|
|
283
|
+
*
|
|
284
|
+
* if there is an error thrown then we assume it is an older version of cypress and use the absolute path
|
|
285
|
+
* as that was supported for longer.
|
|
286
|
+
*
|
|
287
|
+
* */
|
|
288
|
+
function requiresAbsolutePath() {
|
|
289
|
+
try {
|
|
290
|
+
return !isCyVersionGreaterThanOrEqual('12.17.0');
|
|
291
|
+
}
|
|
292
|
+
catch (e) {
|
|
293
|
+
if (process.env.NX_VERBOSE_LOGGING === 'true') {
|
|
294
|
+
devkit_1.logger.error(e);
|
|
295
|
+
}
|
|
296
|
+
return true;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Checks if the install cypress version is greater than or equal to the provided version.
|
|
301
|
+
* Does not catch errors as any custom logic for error handling is required on consumer side.
|
|
302
|
+
* */
|
|
303
|
+
function isCyVersionGreaterThanOrEqual(version) {
|
|
304
|
+
const { version: cyVersion = null } = require('cypress/package.json');
|
|
305
|
+
return !!cyVersion && (0, semver_1.gte)(cyVersion, version);
|
|
306
|
+
}
|
|
@@ -35,6 +35,11 @@ function addLintingGenerator(tree, options) {
|
|
|
35
35
|
.read((0, devkit_1.joinPathFragments)(options.projectRoot, eslintFile), 'utf8')
|
|
36
36
|
.includes(`${options.projectRoot}/tsconfig.*?.json`);
|
|
37
37
|
(0, eslint_file_1.replaceOverridesInLintConfig)(tree, options.projectRoot, [
|
|
38
|
+
{
|
|
39
|
+
files: ['*.json'],
|
|
40
|
+
parser: 'jsonc-eslint-parser',
|
|
41
|
+
rules: {},
|
|
42
|
+
},
|
|
38
43
|
Object.assign(Object.assign({ files: ['*.ts'] }, (hasParserOptions
|
|
39
44
|
? {
|
|
40
45
|
parserOptions: {
|
|
@@ -5,10 +5,12 @@ const devkit_1 = require("@nx/devkit");
|
|
|
5
5
|
const version_utils_1 = require("../../utils/version-utils");
|
|
6
6
|
function addAngularEsLintDependencies(tree) {
|
|
7
7
|
const angularEslintVersionToInstall = (0, version_utils_1.versions)(tree).angularEslintVersion;
|
|
8
|
+
const jsoncEslintParserVersionToInstall = (0, version_utils_1.versions)(tree).jsoncEslintParserVersion;
|
|
8
9
|
return (0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
|
|
9
10
|
'@angular-eslint/eslint-plugin': angularEslintVersionToInstall,
|
|
10
11
|
'@angular-eslint/eslint-plugin-template': angularEslintVersionToInstall,
|
|
11
12
|
'@angular-eslint/template-parser': angularEslintVersionToInstall,
|
|
13
|
+
'jsonc-eslint-parser': jsoncEslintParserVersionToInstall,
|
|
12
14
|
});
|
|
13
15
|
}
|
|
14
16
|
exports.addAngularEsLintDependencies = addAngularEsLintDependencies;
|
|
@@ -35,7 +35,7 @@ function componentGenerator(tree, rawOptions) {
|
|
|
35
35
|
const pathToTemplateFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.html`);
|
|
36
36
|
tree.delete(pathToTemplateFile);
|
|
37
37
|
}
|
|
38
|
-
if (options.inlineStyle) {
|
|
38
|
+
if (options.style === 'none' || options.inlineStyle) {
|
|
39
39
|
const pathToStyleFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.${options.style}`);
|
|
40
40
|
tree.delete(pathToStyleFile);
|
|
41
41
|
}
|
|
@@ -12,7 +12,7 @@ import<% if(standalone) { %> bootstrap <% } else { %> { AppServerModule } <% } %
|
|
|
12
12
|
// The Express app is exported so that it can be used by serverless Functions.
|
|
13
13
|
export function app(): express.Express {
|
|
14
14
|
const server = express();
|
|
15
|
-
const browserBundles = join(process.cwd(), '
|
|
15
|
+
const browserBundles = join(process.cwd(), '<%= browserBundleOutput %>');
|
|
16
16
|
|
|
17
17
|
server.use(cors());
|
|
18
18
|
const indexHtml = existsSync(join(browserBundles, 'index.original.html'))
|
|
@@ -15,8 +15,10 @@ function addSsr(tree, options, appName) {
|
|
|
15
15
|
});
|
|
16
16
|
tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
|
|
17
17
|
tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
|
|
18
|
+
const browserBundleOutput = (0, devkit_1.joinPathFragments)(project.targets.build.options.outputPath, 'browser');
|
|
18
19
|
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files'), project.root, {
|
|
19
20
|
appName,
|
|
21
|
+
browserBundleOutput,
|
|
20
22
|
standalone: options.standalone,
|
|
21
23
|
tmpl: '',
|
|
22
24
|
});
|
|
@@ -12,8 +12,8 @@ import<% if(standalone) { %> bootstrap <% } else { %> { AppServerModule } <% } %
|
|
|
12
12
|
// The Express app is exported so that it can be used by serverless Functions.
|
|
13
13
|
export function app(): express.Express {
|
|
14
14
|
const server = express();
|
|
15
|
-
const browserBundles = join(process.cwd(), '
|
|
16
|
-
const serverBundles = join(process.cwd(), '
|
|
15
|
+
const browserBundles = join(process.cwd(), '<%= browserBundleOutput %>');
|
|
16
|
+
const serverBundles = join(process.cwd(), '<%= serverBundleOutput %>');
|
|
17
17
|
|
|
18
18
|
server.use(cors());
|
|
19
19
|
const indexHtml = existsSync(join(browserBundles, 'index.original.html'))
|
|
@@ -15,8 +15,12 @@ function addSsr(tree, { appName, port, standalone, }) {
|
|
|
15
15
|
});
|
|
16
16
|
tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
|
|
17
17
|
tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
|
|
18
|
+
const browserBundleOutput = (0, devkit_1.joinPathFragments)(project.targets.build.options.outputPath, 'browser');
|
|
19
|
+
const serverBundleOutput = (0, devkit_1.joinPathFragments)(project.targets.build.options.outputPath, 'server');
|
|
18
20
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/base'), project.root, {
|
|
19
21
|
appName,
|
|
22
|
+
browserBundleOutput,
|
|
23
|
+
serverBundleOutput,
|
|
20
24
|
standalone,
|
|
21
25
|
tmpl: '',
|
|
22
26
|
});
|
|
@@ -16,7 +16,7 @@ function generateTestApplication(tree, options) {
|
|
|
16
16
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
17
|
addAngularPluginPeerDeps(tree);
|
|
18
18
|
tree.write('.gitignore', '');
|
|
19
|
-
yield (0, application_1.applicationGenerator)(tree, options);
|
|
19
|
+
yield (0, application_1.applicationGenerator)(tree, Object.assign({ projectNameAndRootFormat: 'as-provided' }, options));
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
exports.generateTestApplication = generateTestApplication;
|
|
@@ -24,7 +24,7 @@ function generateTestHostApplication(tree, options) {
|
|
|
24
24
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
addAngularPluginPeerDeps(tree);
|
|
26
26
|
tree.write('.gitignore', '');
|
|
27
|
-
yield (0, host_1.host)(tree, options);
|
|
27
|
+
yield (0, host_1.host)(tree, Object.assign({ projectNameAndRootFormat: 'as-provided' }, options));
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
exports.generateTestHostApplication = generateTestHostApplication;
|
|
@@ -32,7 +32,7 @@ function generateTestRemoteApplication(tree, options) {
|
|
|
32
32
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
33
33
|
addAngularPluginPeerDeps(tree);
|
|
34
34
|
tree.write('.gitignore', '');
|
|
35
|
-
yield (0, remote_1.remote)(tree, options);
|
|
35
|
+
yield (0, remote_1.remote)(tree, Object.assign({ projectNameAndRootFormat: 'as-provided' }, options));
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
exports.generateTestRemoteApplication = generateTestRemoteApplication;
|
|
@@ -40,7 +40,7 @@ function generateTestLibrary(tree, options) {
|
|
|
40
40
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
41
|
addAngularPluginPeerDeps(tree);
|
|
42
42
|
tree.write('.gitignore', '');
|
|
43
|
-
yield (0, library_1.libraryGenerator)(tree, options);
|
|
43
|
+
yield (0, library_1.libraryGenerator)(tree, Object.assign({ projectNameAndRootFormat: 'as-provided' }, options));
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
exports.generateTestLibrary = generateTestLibrary;
|
|
@@ -57,12 +57,13 @@ function createStorybookTestWorkspaceForLib(libName) {
|
|
|
57
57
|
simpleName: false,
|
|
58
58
|
skipFormat: false,
|
|
59
59
|
unitTestRunner: test_runners_1.UnitTestRunner.Jest,
|
|
60
|
+
projectNameAndRootFormat: 'as-provided',
|
|
60
61
|
});
|
|
61
62
|
yield (0, component_1.componentGenerator)(tree, {
|
|
62
63
|
name: 'test-button',
|
|
63
64
|
project: libName,
|
|
64
65
|
});
|
|
65
|
-
tree.write(
|
|
66
|
+
tree.write(`${libName}/src/lib/test-button/test-button.component.ts`, `import { Component, Input } from '@angular/core';
|
|
66
67
|
|
|
67
68
|
export type ButtonStyle = 'default' | 'primary' | 'accent';
|
|
68
69
|
|
|
@@ -77,8 +78,8 @@ export class TestButtonComponent {
|
|
|
77
78
|
@Input() age?: number;
|
|
78
79
|
@Input() isOn = false;
|
|
79
80
|
}`);
|
|
80
|
-
tree.write(
|
|
81
|
-
const modulePath =
|
|
81
|
+
tree.write(`${libName}/src/lib/test-button/test-button.component.html`, `<button [attr.type]="type" [ngClass]="style"></button>`);
|
|
82
|
+
const modulePath = `${libName}/src/lib/${libName}.module.ts`;
|
|
82
83
|
tree.write(modulePath, `import * as ButtonExports from './test-button/test-button.component';
|
|
83
84
|
${tree.read(modulePath)}`);
|
|
84
85
|
// create a module with component that gets exported in a barrel file
|
|
@@ -89,11 +90,11 @@ export class TestButtonComponent {
|
|
|
89
90
|
yield (0, component_1.componentGenerator)(tree, {
|
|
90
91
|
name: 'barrel-button',
|
|
91
92
|
project: libName,
|
|
92
|
-
path:
|
|
93
|
+
path: `${libName}/src/lib/barrel`,
|
|
93
94
|
module: 'barrel',
|
|
94
95
|
});
|
|
95
|
-
tree.write(
|
|
96
|
-
tree.write(
|
|
96
|
+
tree.write(`${libName}/src/lib/barrel/barrel-button/index.ts`, `export * from './barrel-button.component';`);
|
|
97
|
+
tree.write(`${libName}/src/lib/barrel/barrel.module.ts`, `import { NgModule } from '@angular/core';
|
|
97
98
|
import { CommonModule } from '@angular/common';
|
|
98
99
|
import { BarrelButtonComponent } from './barrel-button';
|
|
99
100
|
|
|
@@ -110,16 +111,16 @@ export class BarrelModule {}`);
|
|
|
110
111
|
yield (0, component_1.componentGenerator)(tree, {
|
|
111
112
|
name: 'variable-declare-button',
|
|
112
113
|
project: libName,
|
|
113
|
-
path:
|
|
114
|
+
path: `${libName}/src/lib/variable-declare`,
|
|
114
115
|
module: 'variable-declare',
|
|
115
116
|
});
|
|
116
117
|
yield (0, component_1.componentGenerator)(tree, {
|
|
117
118
|
name: 'variable-declare-view',
|
|
118
119
|
project: libName,
|
|
119
|
-
path:
|
|
120
|
+
path: `${libName}/src/lib/variable-declare`,
|
|
120
121
|
module: 'variable-declare',
|
|
121
122
|
});
|
|
122
|
-
tree.write(
|
|
123
|
+
tree.write(`${libName}/src/lib/variable-declare/variable-declare.module.ts`, `import { NgModule } from '@angular/core';
|
|
123
124
|
import { CommonModule } from '@angular/common';
|
|
124
125
|
import { VariableDeclareButtonComponent } from './variable-declare-button/variable-declare-button.component';
|
|
125
126
|
import { VariableDeclareViewComponent } from './variable-declare-view/variable-declare-view.component';
|
|
@@ -143,22 +144,22 @@ export class VariableDeclareModule {}`);
|
|
|
143
144
|
yield (0, component_1.componentGenerator)(tree, {
|
|
144
145
|
name: 'variable-spread-declare-button',
|
|
145
146
|
project: libName,
|
|
146
|
-
path:
|
|
147
|
+
path: `${libName}/src/lib/variable-spread-declare`,
|
|
147
148
|
module: 'variable-spread-declare',
|
|
148
149
|
});
|
|
149
150
|
yield (0, component_1.componentGenerator)(tree, {
|
|
150
151
|
name: 'variable-spread-declare-view',
|
|
151
152
|
project: libName,
|
|
152
|
-
path:
|
|
153
|
+
path: `${libName}/src/lib/variable-spread-declare`,
|
|
153
154
|
module: 'variable-spread-declare',
|
|
154
155
|
});
|
|
155
156
|
yield (0, component_1.componentGenerator)(tree, {
|
|
156
157
|
name: 'variable-spread-declare-anotherview',
|
|
157
158
|
project: libName,
|
|
158
|
-
path:
|
|
159
|
+
path: `${libName}/src/lib/variable-spread-declare`,
|
|
159
160
|
module: 'variable-spread-declare',
|
|
160
161
|
});
|
|
161
|
-
tree.write(
|
|
162
|
+
tree.write(`${libName}/src/lib/variable-spread-declare/variable-spread-declare.module.ts`, `import { NgModule } from '@angular/core';
|
|
162
163
|
import { CommonModule } from '@angular/common';
|
|
163
164
|
import { VariableSpreadDeclareButtonComponent } from './variable-spread-declare-button/variable-spread-declare-button.component';
|
|
164
165
|
import { VariableSpreadDeclareViewComponent } from './variable-spread-declare-view/variable-spread-declare-view.component';
|
|
@@ -182,16 +183,16 @@ export class VariableSpreadDeclareModule {}`);
|
|
|
182
183
|
yield (0, component_1.componentGenerator)(tree, {
|
|
183
184
|
name: 'cmp1',
|
|
184
185
|
project: libName,
|
|
185
|
-
path:
|
|
186
|
+
path: `${libName}/src/lib/static-member-declarations`,
|
|
186
187
|
module: 'static-member-declarations',
|
|
187
188
|
});
|
|
188
189
|
yield (0, component_1.componentGenerator)(tree, {
|
|
189
190
|
name: 'cmp2',
|
|
190
191
|
project: libName,
|
|
191
|
-
path:
|
|
192
|
+
path: `${libName}/src/lib/static-member-declarations`,
|
|
192
193
|
module: 'static-member-declarations',
|
|
193
194
|
});
|
|
194
|
-
tree.write(
|
|
195
|
+
tree.write(`${libName}/src/lib/static-member-declarations/static-member-declarations.module.ts`, `import { NgModule } from '@angular/core';
|
|
195
196
|
import { CommonModule } from '@angular/common';
|
|
196
197
|
import { Cmp1Component } from './cmp1/cmp1.component';
|
|
197
198
|
import { Cmp2Component } from './cmp2/cmp2.component';
|
|
@@ -208,13 +209,13 @@ export class StaticMemberDeclarationsModule {
|
|
|
208
209
|
generateModule(tree, {
|
|
209
210
|
name: 'nested',
|
|
210
211
|
project: libName,
|
|
211
|
-
path:
|
|
212
|
+
path: `${libName}/src/lib`,
|
|
212
213
|
});
|
|
213
214
|
yield (0, component_1.componentGenerator)(tree, {
|
|
214
215
|
name: 'nested-button',
|
|
215
216
|
project: libName,
|
|
216
217
|
module: 'nested',
|
|
217
|
-
path:
|
|
218
|
+
path: `${libName}/src/lib/nested`,
|
|
218
219
|
});
|
|
219
220
|
yield (0, component_1.componentGenerator)(tree, {
|
|
220
221
|
name: 'test-other',
|
|
@@ -28,6 +28,7 @@ exports.backwardCompatibleVersions = {
|
|
|
28
28
|
jestPresetAngularVersion: '~12.2.3',
|
|
29
29
|
typesNodeVersion: '16.11.7',
|
|
30
30
|
jasmineMarblesVersion: '^0.9.2',
|
|
31
|
+
jsoncEslintParserVersion: '^2.1.0',
|
|
31
32
|
},
|
|
32
33
|
angularV15: {
|
|
33
34
|
angularVersion: '~15.2.0',
|
|
@@ -55,5 +56,6 @@ exports.backwardCompatibleVersions = {
|
|
|
55
56
|
jestPresetAngularVersion: '~13.0.0',
|
|
56
57
|
typesNodeVersion: '16.11.7',
|
|
57
58
|
jasmineMarblesVersion: '^0.9.2',
|
|
59
|
+
jsoncEslintParserVersion: '^2.1.0',
|
|
58
60
|
},
|
|
59
61
|
};
|
|
@@ -17,7 +17,7 @@ function createApp(tree, appName, routing = true) {
|
|
|
17
17
|
// save for getAppDir() lookup by external *.spec.ts tests
|
|
18
18
|
appConfig = {
|
|
19
19
|
appName,
|
|
20
|
-
appModule:
|
|
20
|
+
appModule: `${appName}/src/app/app.module.ts`,
|
|
21
21
|
};
|
|
22
22
|
tree.write(appConfig.appModule, `
|
|
23
23
|
import { NgModule } from '@angular/core';
|
|
@@ -31,7 +31,7 @@ function createApp(tree, appName, routing = true) {
|
|
|
31
31
|
})
|
|
32
32
|
export class AppModule {}
|
|
33
33
|
`);
|
|
34
|
-
tree.write(
|
|
34
|
+
tree.write(`${appName}/src/main.ts`, `
|
|
35
35
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
36
36
|
|
|
37
37
|
import { AppModule } from './app/app.module';
|
|
@@ -40,19 +40,19 @@ function createApp(tree, appName, routing = true) {
|
|
|
40
40
|
.bootstrapModule(AppModule)
|
|
41
41
|
.catch(err => console.log(err));
|
|
42
42
|
`);
|
|
43
|
-
tree.write(
|
|
43
|
+
tree.write(`${appName}/tsconfig.app.json`, JSON.stringify({
|
|
44
44
|
include: ['**/*.ts'],
|
|
45
45
|
}));
|
|
46
|
-
tree.write(
|
|
46
|
+
tree.write(`${appName}-e2e/tsconfig.e2e.json`, JSON.stringify({
|
|
47
47
|
include: ['../**/*.ts'],
|
|
48
48
|
}));
|
|
49
49
|
(0, devkit_1.addProjectConfiguration)(tree, appName, {
|
|
50
|
-
root:
|
|
51
|
-
sourceRoot:
|
|
50
|
+
root: `${appName}`,
|
|
51
|
+
sourceRoot: `${appName}/src`,
|
|
52
52
|
targets: {
|
|
53
53
|
build: {
|
|
54
54
|
options: {
|
|
55
|
-
main:
|
|
55
|
+
main: `${appName}/src/main.ts`,
|
|
56
56
|
},
|
|
57
57
|
},
|
|
58
58
|
serve: {
|
|
@@ -67,8 +67,8 @@ function createLib(tree, libName) {
|
|
|
67
67
|
const { name, className, fileName, propertyName } = (0, devkit_1.names)(libName);
|
|
68
68
|
libConfig = {
|
|
69
69
|
name,
|
|
70
|
-
module:
|
|
71
|
-
barrel:
|
|
70
|
+
module: `${propertyName}/src/lib/${fileName}.module.ts`,
|
|
71
|
+
barrel: `${propertyName}/src/index.ts`,
|
|
72
72
|
};
|
|
73
73
|
tree.write(libConfig.module, `
|
|
74
74
|
import { NgModule } from '@angular/core';
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -24,3 +24,4 @@ export declare const tsNodeVersion = "10.9.1";
|
|
|
24
24
|
export declare const jestPresetAngularVersion = "~13.1.0";
|
|
25
25
|
export declare const typesNodeVersion = "16.11.7";
|
|
26
26
|
export declare const jasmineMarblesVersion = "^0.9.2";
|
|
27
|
+
export declare const jsoncEslintParserVersion = "^2.1.0";
|
package/src/utils/versions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.jasmineMarblesVersion = exports.typesNodeVersion = exports.jestPresetAngularVersion = exports.tsNodeVersion = exports.autoprefixerVersion = exports.postcssUrlVersion = exports.postcssPresetEnvVersion = exports.postcssImportVersion = exports.postcssVersion = exports.tailwindVersion = exports.angularEslintVersion = exports.moduleFederationNodeVersion = exports.typesExpressVersion = exports.expressVersion = exports.typesCorsVersion = exports.corsVersion = exports.ngUniversalVersion = exports.tsLibVersion = exports.angularJsVersion = exports.zoneJsVersion = exports.rxjsVersion = exports.ngrxVersion = exports.ngPackagrVersion = exports.angularDevkitVersion = exports.angularVersion = exports.nxVersion = void 0;
|
|
3
|
+
exports.jsoncEslintParserVersion = exports.jasmineMarblesVersion = exports.typesNodeVersion = exports.jestPresetAngularVersion = exports.tsNodeVersion = exports.autoprefixerVersion = exports.postcssUrlVersion = exports.postcssPresetEnvVersion = exports.postcssImportVersion = exports.postcssVersion = exports.tailwindVersion = exports.angularEslintVersion = exports.moduleFederationNodeVersion = exports.typesExpressVersion = exports.expressVersion = exports.typesCorsVersion = exports.corsVersion = exports.ngUniversalVersion = exports.tsLibVersion = exports.angularJsVersion = exports.zoneJsVersion = exports.rxjsVersion = exports.ngrxVersion = exports.ngPackagrVersion = exports.angularDevkitVersion = exports.angularVersion = exports.nxVersion = void 0;
|
|
4
4
|
exports.nxVersion = require('../../package.json').version;
|
|
5
5
|
exports.angularVersion = '~16.2.0';
|
|
6
6
|
exports.angularDevkitVersion = '~16.2.0';
|
|
@@ -27,3 +27,4 @@ exports.tsNodeVersion = '10.9.1';
|
|
|
27
27
|
exports.jestPresetAngularVersion = '~13.1.0';
|
|
28
28
|
exports.typesNodeVersion = '16.11.7';
|
|
29
29
|
exports.jasmineMarblesVersion = '^0.9.2';
|
|
30
|
+
exports.jsoncEslintParserVersion = '^2.1.0';
|