@nx/next 16.0.0-beta.5 → 16.0.0-beta.7
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/generators.json +5 -0
- package/index.d.ts +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/package.json +8 -8
- package/plugins/component-testing.d.ts +13 -0
- package/plugins/component-testing.js +69 -0
- package/plugins/component-testing.js.map +1 -0
- package/plugins/with-nx.d.ts +3 -2
- package/plugins/with-nx.js +35 -25
- package/plugins/with-nx.js.map +1 -1
- package/src/executors/build/lib/create-next-config-file.d.ts +5 -1
- package/src/executors/build/lib/create-next-config-file.js +56 -2
- package/src/executors/build/lib/create-next-config-file.js.map +1 -1
- package/src/executors/server/lib/default-server.js +2 -2
- package/src/executors/server/lib/default-server.js.map +1 -1
- package/src/generators/application/application.js +2 -0
- package/src/generators/application/application.js.map +1 -1
- package/src/generators/application/files/common/next.config.js__tmpl__ +1 -1
- package/src/generators/application/lib/add-project.js +2 -1
- package/src/generators/application/lib/add-project.js.map +1 -1
- package/src/generators/application/lib/create-application-files.js +5 -0
- package/src/generators/application/lib/create-application-files.js.map +1 -1
- package/src/generators/application/lib/update-cypress-tsconfig.d.ts +3 -0
- package/src/generators/application/lib/update-cypress-tsconfig.js +14 -0
- package/src/generators/application/lib/update-cypress-tsconfig.js.map +1 -0
- package/src/generators/cypress-component-configuration/cypress-component-configuration.d.ts +4 -0
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js +67 -0
- package/src/generators/cypress-component-configuration/cypress-component-configuration.js.map +1 -0
- package/src/generators/cypress-component-configuration/files/cypress/support/commands.ts__tpl__ +42 -0
- package/src/generators/cypress-component-configuration/files/cypress/support/styles.ct.css__tpl__ +4 -0
- package/src/generators/cypress-component-configuration/files/cypress.config.ts__tpl__ +6 -0
- package/src/generators/cypress-component-configuration/schema.d.ts +5 -0
- package/src/generators/cypress-component-configuration/schema.json +42 -0
- package/src/generators/library/library.js +7 -1
- package/src/generators/library/library.js.map +1 -1
- package/src/utils/compose-plugins.d.ts +3 -0
- package/src/utils/compose-plugins.js +26 -0
- package/src/utils/compose-plugins.js.map +1 -0
- package/src/utils/config.d.ts +1 -2
- package/src/utils/config.js +1 -23
- package/src/utils/config.js.map +1 -1
package/generators.json
CHANGED
|
@@ -67,6 +67,11 @@
|
|
|
67
67
|
"factory": "./src/generators/custom-server/custom-server#customServerGenerator",
|
|
68
68
|
"schema": "./src/generators/custom-server/schema.json",
|
|
69
69
|
"description": "Set up a custom server."
|
|
70
|
+
},
|
|
71
|
+
"cypress-component-configuration": {
|
|
72
|
+
"factory": "./src/generators/cypress-component-configuration/cypress-component-configuration",
|
|
73
|
+
"schema": "./src/generators/cypress-component-configuration/schema.json",
|
|
74
|
+
"description": "cypress-component-configuration generator"
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
}
|
package/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export { componentGenerator } from './src/generators/component/component';
|
|
|
5
5
|
export { libraryGenerator } from './src/generators/library/library';
|
|
6
6
|
export { pageGenerator } from './src/generators/page/page';
|
|
7
7
|
export { withNx } from './plugins/with-nx';
|
|
8
|
-
export { composePlugins } from './src/utils/
|
|
8
|
+
export { composePlugins } from './src/utils/compose-plugins';
|
package/index.js
CHANGED
|
@@ -15,6 +15,6 @@ var page_1 = require("./src/generators/page/page");
|
|
|
15
15
|
Object.defineProperty(exports, "pageGenerator", { enumerable: true, get: function () { return page_1.pageGenerator; } });
|
|
16
16
|
var with_nx_1 = require("./plugins/with-nx");
|
|
17
17
|
Object.defineProperty(exports, "withNx", { enumerable: true, get: function () { return with_nx_1.withNx; } });
|
|
18
|
-
var
|
|
19
|
-
Object.defineProperty(exports, "composePlugins", { enumerable: true, get: function () { return
|
|
18
|
+
var compose_plugins_1 = require("./src/utils/compose-plugins");
|
|
19
|
+
Object.defineProperty(exports, "composePlugins", { enumerable: true, get: function () { return compose_plugins_1.composePlugins; } });
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/next/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAkC;AAClC,6DAAmF;AAA1E,uIAAA,qCAAqC,OAAA;AAE9C,wEAAgF;AAAvE,mHAAA,oBAAoB,OAAA;AAC7B,kEAA0E;AAAjE,+GAAA,kBAAkB,OAAA;AAC3B,4DAAoE;AAA3D,2GAAA,gBAAgB,OAAA;AACzB,mDAA2D;AAAlD,qGAAA,aAAa,OAAA;AACtB,6CAA2C;AAAlC,iGAAA,MAAM,OAAA;AACf
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/next/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAkC;AAClC,6DAAmF;AAA1E,uIAAA,qCAAqC,OAAA;AAE9C,wEAAgF;AAAvE,mHAAA,oBAAoB,OAAA;AAC7B,kEAA0E;AAAjE,+GAAA,kBAAkB,OAAA;AAC3B,4DAAoE;AAA3D,2GAAA,gBAAgB,OAAA;AACzB,mDAA2D;AAAlD,qGAAA,aAAa,OAAA;AACtB,6CAA2C;AAAlC,iGAAA,MAAM,OAAA;AACf,+DAA6D;AAApD,iHAAA,cAAc,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/next",
|
|
3
|
-
"version": "16.0.0-beta.
|
|
3
|
+
"version": "16.0.0-beta.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Next.js plugin for Nx contains executors and generators for managing Next.js applications and libraries within an Nx workspace. It provides:\n\n\n- Scaffolding for creating, building, serving, linting, and testing Next.js applications.\n\n- Integration with building, serving, and exporting a Next.js application.\n\n- Integration with React libraries within the workspace. \n\nWhen using Next.js in Nx, you get the out-of-the-box support for TypeScript, Cypress, and Jest. No need to configure anything: watch mode, source maps, and typings just work.",
|
|
6
6
|
"repository": {
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@babel/plugin-proposal-decorators": "^7.14.5",
|
|
38
|
-
"@nrwl/next": "16.0.0-beta.
|
|
39
|
-
"@nx/devkit": "16.0.0-beta.
|
|
40
|
-
"@nx/js": "16.0.0-beta.
|
|
41
|
-
"@nx/linter": "16.0.0-beta.
|
|
42
|
-
"@nx/react": "16.0.0-beta.
|
|
43
|
-
"@nx/workspace": "16.0.0-beta.
|
|
38
|
+
"@nrwl/next": "16.0.0-beta.7",
|
|
39
|
+
"@nx/devkit": "16.0.0-beta.7",
|
|
40
|
+
"@nx/js": "16.0.0-beta.7",
|
|
41
|
+
"@nx/linter": "16.0.0-beta.7",
|
|
42
|
+
"@nx/react": "16.0.0-beta.7",
|
|
43
|
+
"@nx/workspace": "16.0.0-beta.7",
|
|
44
44
|
"@svgr/webpack": "^6.1.2",
|
|
45
45
|
"chalk": "^4.1.0",
|
|
46
46
|
"copy-webpack-plugin": "^10.2.4",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"access": "public"
|
|
61
61
|
},
|
|
62
62
|
"types": "./index.d.ts",
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "eb477479bf73bca940323a66e486221f00006c0f"
|
|
64
64
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { NxComponentTestingOptions } from '@nx/cypress/plugins/cypress-preset';
|
|
2
|
+
export declare function nxComponentTestingPreset(pathToConfig: string, options?: NxComponentTestingOptions): {
|
|
3
|
+
specPattern: string;
|
|
4
|
+
devServer: {
|
|
5
|
+
webpackConfig: import("webpack").Configuration;
|
|
6
|
+
framework: "react";
|
|
7
|
+
bundler: "webpack";
|
|
8
|
+
};
|
|
9
|
+
videosFolder: string;
|
|
10
|
+
screenshotsFolder: string;
|
|
11
|
+
video: boolean;
|
|
12
|
+
chromeWebSecurity: boolean;
|
|
13
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nxComponentTestingPreset = void 0;
|
|
4
|
+
const ct_helpers_1 = require("@nx/cypress/src/utils/ct-helpers");
|
|
5
|
+
const cypress_preset_1 = require("@nx/cypress/plugins/cypress-preset");
|
|
6
|
+
const devkit_1 = require("@nx/devkit");
|
|
7
|
+
const react_1 = require("@nx/react");
|
|
8
|
+
const webpack_1 = require("@nx/webpack");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
function nxComponentTestingPreset(pathToConfig, options) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const graph = (0, devkit_1.readCachedProjectGraph)();
|
|
13
|
+
const { targets: ctTargets, name: ctProjectName } = (0, ct_helpers_1.getProjectConfigByPath)(graph, pathToConfig);
|
|
14
|
+
const ctTargetName = (options === null || options === void 0 ? void 0 : options.ctTargetName) || 'component-test';
|
|
15
|
+
const ctConfigurationName = process.env.NX_CYPRESS_TARGET_CONFIGURATION;
|
|
16
|
+
const ctExecutorContext = (0, ct_helpers_1.createExecutorContext)(graph, ctTargets, ctProjectName, ctTargetName, ctConfigurationName);
|
|
17
|
+
const ctExecutorOptions = (0, devkit_1.readTargetOptions)({
|
|
18
|
+
project: ctProjectName,
|
|
19
|
+
target: ctTargetName,
|
|
20
|
+
configuration: ctConfigurationName,
|
|
21
|
+
}, ctExecutorContext);
|
|
22
|
+
const buildTarget = ctExecutorOptions.devServerTarget;
|
|
23
|
+
let buildAssets = [];
|
|
24
|
+
let buildFileReplacements = [];
|
|
25
|
+
let buildOuputPath = `dist/${ctProjectName}/.next`;
|
|
26
|
+
if (buildTarget) {
|
|
27
|
+
const parsedBuildTarget = (0, devkit_1.parseTargetString)(buildTarget, graph);
|
|
28
|
+
const buildProjectConfig = (_a = graph.nodes[parsedBuildTarget.project]) === null || _a === void 0 ? void 0 : _a.data;
|
|
29
|
+
const buildExecutorContext = (0, ct_helpers_1.createExecutorContext)(graph, buildProjectConfig.targets, parsedBuildTarget.project, parsedBuildTarget.target, parsedBuildTarget.configuration);
|
|
30
|
+
const buildExecutorOptions = (0, devkit_1.readTargetOptions)({
|
|
31
|
+
project: parsedBuildTarget.project,
|
|
32
|
+
target: parsedBuildTarget.target,
|
|
33
|
+
configuration: parsedBuildTarget.configuration,
|
|
34
|
+
}, buildExecutorContext);
|
|
35
|
+
buildAssets !== null && buildAssets !== void 0 ? buildAssets : (buildAssets = buildExecutorOptions.assets);
|
|
36
|
+
buildFileReplacements !== null && buildFileReplacements !== void 0 ? buildFileReplacements : (buildFileReplacements = buildExecutorOptions.fileReplacements);
|
|
37
|
+
buildOuputPath !== null && buildOuputPath !== void 0 ? buildOuputPath : (buildOuputPath = buildExecutorOptions.outputPath);
|
|
38
|
+
}
|
|
39
|
+
const ctProjectConfig = (_b = graph.nodes[ctProjectName]) === null || _b === void 0 ? void 0 : _b.data;
|
|
40
|
+
if (!ctProjectConfig) {
|
|
41
|
+
throw new Error((0, devkit_1.stripIndents) `Unable to load project configs from the project graph.
|
|
42
|
+
Provided build target, ${buildTarget}.
|
|
43
|
+
Able to find CT project, ${!!ctProjectConfig}.`);
|
|
44
|
+
}
|
|
45
|
+
const webpackOptions = {
|
|
46
|
+
root: ctExecutorContext.root,
|
|
47
|
+
projectRoot: ctProjectConfig.root,
|
|
48
|
+
sourceRoot: ctProjectConfig.sourceRoot,
|
|
49
|
+
main: '',
|
|
50
|
+
fileReplacements: buildFileReplacements,
|
|
51
|
+
assets: buildAssets,
|
|
52
|
+
outputPath: buildOuputPath,
|
|
53
|
+
outputFileName: 'main.js',
|
|
54
|
+
compiler: 'swc',
|
|
55
|
+
tsConfig: (0, path_1.join)(ctExecutorContext.root, ctProjectConfig.root, 'tsconfig.json'),
|
|
56
|
+
};
|
|
57
|
+
const configure = (0, webpack_1.composePluginsSync)((0, webpack_1.withNx)(), (0, react_1.withReact)({
|
|
58
|
+
styles: [],
|
|
59
|
+
scripts: [],
|
|
60
|
+
postcssConfig: ctProjectConfig.root,
|
|
61
|
+
}));
|
|
62
|
+
const webpackConfig = configure({}, {
|
|
63
|
+
options: webpackOptions,
|
|
64
|
+
context: ctExecutorContext,
|
|
65
|
+
});
|
|
66
|
+
return Object.assign(Object.assign({}, (0, cypress_preset_1.nxBaseCypressPreset)(__filename)), { specPattern: '**/*.cy.{js,jsx,ts,tsx}', devServer: Object.assign(Object.assign({}, { framework: 'react', bundler: 'webpack' }), { webpackConfig }) });
|
|
67
|
+
}
|
|
68
|
+
exports.nxComponentTestingPreset = nxComponentTestingPreset;
|
|
69
|
+
//# sourceMappingURL=component-testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-testing.js","sourceRoot":"","sources":["../../../../packages/next/plugins/component-testing.ts"],"names":[],"mappings":"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"}
|
package/plugins/with-nx.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NextConfig } from 'next';
|
|
2
|
-
import { NextConfigFn } from '../src/utils/config';
|
|
2
|
+
import type { NextConfigFn } from '../src/utils/config';
|
|
3
3
|
export interface WithNxOptions extends NextConfig {
|
|
4
4
|
nx?: {
|
|
5
5
|
svgr?: boolean;
|
|
@@ -9,5 +9,6 @@ export interface WithNxContext {
|
|
|
9
9
|
workspaceRoot: string;
|
|
10
10
|
libsDir: string;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
declare function withNx(_nextConfig?: WithNxOptions, context?: WithNxContext): NextConfigFn;
|
|
13
13
|
export declare function getNextConfig(nextConfig?: WithNxOptions, context?: WithNxContext): NextConfig;
|
|
14
|
+
export { withNx };
|
package/plugins/with-nx.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.withNx = exports.getNextConfig = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
/**
|
|
6
|
+
* WARNING: Do not add development dependencies to top-level imports.
|
|
7
|
+
* Instead, `require` them inline during the build phase.
|
|
8
|
+
*/
|
|
8
9
|
const path = require("path");
|
|
9
|
-
const config_1 = require("../src/utils/config");
|
|
10
10
|
function regexEqual(x, y) {
|
|
11
11
|
return (x instanceof RegExp &&
|
|
12
12
|
y instanceof RegExp &&
|
|
@@ -39,6 +39,7 @@ function getOptions(graph, target) {
|
|
|
39
39
|
return options;
|
|
40
40
|
}
|
|
41
41
|
function getNxContext(graph, target) {
|
|
42
|
+
const { parseTargetString } = require('@nx/devkit');
|
|
42
43
|
const targetConfig = getTargetConfig(graph, target);
|
|
43
44
|
if ('@nx/next:build' === targetConfig.executor ||
|
|
44
45
|
'@nrwl/next:build' === targetConfig.executor) {
|
|
@@ -53,7 +54,7 @@ function getNxContext(graph, target) {
|
|
|
53
54
|
const targetOptions = getOptions(graph, target);
|
|
54
55
|
// If we are running serve or export pull the options from the dependent target first (ex. build)
|
|
55
56
|
if (targetOptions.devServerTarget) {
|
|
56
|
-
const devServerTarget =
|
|
57
|
+
const devServerTarget = parseTargetString(targetOptions.devServerTarget, graph);
|
|
57
58
|
return getNxContext(graph, devServerTarget);
|
|
58
59
|
}
|
|
59
60
|
else if ([
|
|
@@ -62,7 +63,7 @@ function getNxContext(graph, target) {
|
|
|
62
63
|
'@nrwl/next:server',
|
|
63
64
|
'@nrwl/next:export',
|
|
64
65
|
].includes(targetConfig.executor)) {
|
|
65
|
-
const buildTarget =
|
|
66
|
+
const buildTarget = parseTargetString(targetOptions.buildTarget, graph);
|
|
66
67
|
return getNxContext(graph, buildTarget);
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
@@ -77,31 +78,38 @@ function determineDistDirForProdServer(nextConfig) {
|
|
|
77
78
|
const project = process.env.NX_TASK_TARGET_PROJECT;
|
|
78
79
|
const target = process.env.NX_TASK_TARGET_TARGET;
|
|
79
80
|
const configuration = process.env.NX_TASK_TARGET_CONFIGURATION;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
try {
|
|
82
|
+
if (project && target) {
|
|
83
|
+
// If NX env vars are set, then devkit must be available.
|
|
84
|
+
const { createProjectGraphAsync, joinPathFragments, offsetFromRoot, } = require('@nx/devkit');
|
|
85
|
+
const originalTarget = { project, target, configuration };
|
|
86
|
+
const graph = yield createProjectGraphAsync();
|
|
87
|
+
const { options, node: projectNode } = getNxContext(graph, originalTarget);
|
|
88
|
+
const outputDir = `${offsetFromRoot(projectNode.data.root)}${options.outputPath}`;
|
|
89
|
+
return nextConfig.distDir && nextConfig.distDir !== '.next'
|
|
90
|
+
? joinPathFragments(outputDir, nextConfig.distDir)
|
|
91
|
+
: joinPathFragments(outputDir, '.next');
|
|
92
|
+
}
|
|
88
93
|
}
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
catch (_a) {
|
|
95
|
+
// ignored -- fallback to Next.js default of '.next'
|
|
91
96
|
}
|
|
97
|
+
return nextConfig.distDir || '.next';
|
|
92
98
|
});
|
|
93
99
|
}
|
|
94
100
|
function withNx(_nextConfig = {}, context = getWithNxContext()) {
|
|
95
101
|
return (phase) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
|
|
102
|
+
const { PHASE_PRODUCTION_SERVER } = yield Promise.resolve().then(() => require('next/constants'));
|
|
103
|
+
if (phase === PHASE_PRODUCTION_SERVER) {
|
|
97
104
|
// If we are running an already built production server, just return the configuration.
|
|
98
105
|
const { nx } = _nextConfig, validNextConfig = tslib_1.__rest(_nextConfig, ["nx"]);
|
|
99
|
-
return Object.assign(Object.assign({}, validNextConfig), { distDir: yield determineDistDirForProdServer(
|
|
106
|
+
return Object.assign(Object.assign({}, validNextConfig), { distDir: yield determineDistDirForProdServer(_nextConfig) });
|
|
100
107
|
}
|
|
101
108
|
else {
|
|
109
|
+
const { createProjectGraphAsync, joinPathFragments, offsetFromRoot, workspaceRoot, } = require('@nx/devkit');
|
|
102
110
|
// Otherwise, add in webpack and eslint configuration for build or test.
|
|
103
111
|
let dependencies = [];
|
|
104
|
-
const graph = yield
|
|
112
|
+
const graph = yield createProjectGraphAsync();
|
|
105
113
|
const originalTarget = {
|
|
106
114
|
project: process.env.NX_TASK_TARGET_PROJECT,
|
|
107
115
|
target: process.env.NX_TASK_TARGET_TARGET,
|
|
@@ -110,18 +118,20 @@ function withNx(_nextConfig = {}, context = getWithNxContext()) {
|
|
|
110
118
|
const { node: projectNode, options, projectName: project, targetName, configurationName, } = getNxContext(graph, originalTarget);
|
|
111
119
|
const projectDirectory = projectNode.data.root;
|
|
112
120
|
if (options.buildLibsFromSource === false && targetName) {
|
|
113
|
-
const
|
|
121
|
+
const { calculateProjectDependencies, } = require('@nx/js/src/utils/buildable-libs-utils');
|
|
122
|
+
const result = calculateProjectDependencies(graph, workspaceRoot, project, targetName, configurationName);
|
|
114
123
|
dependencies = result.dependencies;
|
|
115
124
|
}
|
|
116
125
|
// Get next config
|
|
117
126
|
const nextConfig = getNextConfig(_nextConfig, context);
|
|
118
|
-
const outputDir = `${
|
|
127
|
+
const outputDir = `${offsetFromRoot(projectDirectory)}${options.outputPath}`;
|
|
119
128
|
nextConfig.distDir =
|
|
120
129
|
nextConfig.distDir && nextConfig.distDir !== '.next'
|
|
121
|
-
?
|
|
122
|
-
:
|
|
130
|
+
? joinPathFragments(outputDir, nextConfig.distDir)
|
|
131
|
+
: joinPathFragments(outputDir, '.next');
|
|
123
132
|
const userWebpackConfig = nextConfig.webpack;
|
|
124
|
-
|
|
133
|
+
const { createWebpackConfig } = require('../src/utils/config');
|
|
134
|
+
nextConfig.webpack = (a, b) => createWebpackConfig(workspaceRoot, options.root, options.fileReplacements, options.assets, dependencies, path.join(workspaceRoot, context.libsDir))(userWebpackConfig ? userWebpackConfig(a, b) : a, b);
|
|
125
135
|
return nextConfig;
|
|
126
136
|
}
|
|
127
137
|
});
|
package/plugins/with-nx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-nx.js","sourceRoot":"","sources":["../../../../packages/next/plugins/with-nx.ts"],"names":[],"mappings":";;;;AAAA
|
|
1
|
+
{"version":3,"file":"with-nx.js","sourceRoot":"","sources":["../../../../packages/next/plugins/with-nx.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
1
|
+
import type { ExecutorContext } from '@nx/devkit';
|
|
2
2
|
import type { NextBuildBuilderOptions } from '../../../utils/types';
|
|
3
3
|
export declare function createNextConfigFile(options: NextBuildBuilderOptions, context: ExecutorContext): void;
|
|
4
|
+
export declare function getWithNxContent({ withNxFile, withNxContent }?: {
|
|
5
|
+
withNxFile: string;
|
|
6
|
+
withNxContent: string;
|
|
7
|
+
}): string;
|
|
@@ -1,15 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createNextConfigFile = void 0;
|
|
3
|
+
exports.getWithNxContent = exports.createNextConfigFile = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const ts = require("typescript");
|
|
4
6
|
const fs_1 = require("fs");
|
|
5
7
|
const path_1 = require("path");
|
|
8
|
+
const typescript_1 = require("nx/src/utils/typescript");
|
|
6
9
|
function createNextConfigFile(options, context) {
|
|
7
10
|
const nextConfigPath = options.nextConfig
|
|
8
11
|
? (0, path_1.join)(context.root, options.nextConfig)
|
|
9
12
|
: (0, path_1.join)(context.root, options.root, 'next.config.js');
|
|
13
|
+
// Copy config file and our `.nx-helpers` folder to remove dependency on @nrwl/next for production build.
|
|
10
14
|
if ((0, fs_1.existsSync)(nextConfigPath)) {
|
|
11
|
-
|
|
15
|
+
const helpersPath = (0, path_1.join)(options.outputPath, '.nx-helpers');
|
|
16
|
+
(0, fs_1.mkdirSync)(helpersPath, { recursive: true });
|
|
17
|
+
(0, fs_1.copyFileSync)((0, path_1.join)(__dirname, '../../../utils/compose-plugins.js'), (0, path_1.join)(helpersPath, 'compose-plugins.js'));
|
|
18
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(helpersPath, 'with-nx.js'), getWithNxContent());
|
|
19
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(helpersPath, 'compiled.js'), `
|
|
20
|
+
const withNx = require('./with-nx');
|
|
21
|
+
module.exports = withNx;
|
|
22
|
+
module.exports.withNx = withNx;
|
|
23
|
+
module.exports.composePlugins = require('./compose-plugins').composePlugins;
|
|
24
|
+
`);
|
|
25
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(options.outputPath, 'next.config.js'), (0, fs_1.readFileSync)(nextConfigPath)
|
|
26
|
+
.toString()
|
|
27
|
+
.replace(/["']@nx\/next["']/, `'./.nx-helpers/compiled.js'`)
|
|
28
|
+
// TODO(v17): Remove this once users have all migrated to new @nx scope and import from '@nx/next' not the deep import paths.
|
|
29
|
+
.replace('@nx/next/plugins/with-nx', './.nx-helpers/compiled.js')
|
|
30
|
+
.replace('@nrwl/next/plugins/with-nx', './.nx-helpers/compiled.js'));
|
|
12
31
|
}
|
|
13
32
|
}
|
|
14
33
|
exports.createNextConfigFile = createNextConfigFile;
|
|
34
|
+
function readSource() {
|
|
35
|
+
const withNxFile = (0, path_1.join)(__dirname, '../../../../plugins/with-nx.js');
|
|
36
|
+
const withNxContent = (0, fs_1.readFileSync)(withNxFile).toString();
|
|
37
|
+
return {
|
|
38
|
+
withNxFile,
|
|
39
|
+
withNxContent,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Exported for testing
|
|
43
|
+
function getWithNxContent({ withNxFile, withNxContent } = readSource()) {
|
|
44
|
+
var _a;
|
|
45
|
+
const withNxSource = ts.createSourceFile(withNxFile, withNxContent, ts.ScriptTarget.Latest, true);
|
|
46
|
+
const getWithNxContextDeclaration = (_a = (0, typescript_1.findNodes)(withNxSource, ts.SyntaxKind.FunctionDeclaration)) === null || _a === void 0 ? void 0 : _a.find((node) => { var _a; return ((_a = node.name) === null || _a === void 0 ? void 0 : _a.text) === 'getWithNxContext'; });
|
|
47
|
+
if (getWithNxContextDeclaration) {
|
|
48
|
+
withNxContent = (0, devkit_1.applyChangesToString)(withNxContent, [
|
|
49
|
+
{
|
|
50
|
+
type: devkit_1.ChangeType.Delete,
|
|
51
|
+
start: getWithNxContextDeclaration.getStart(withNxSource),
|
|
52
|
+
length: getWithNxContextDeclaration.getWidth(withNxSource),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: devkit_1.ChangeType.Insert,
|
|
56
|
+
index: getWithNxContextDeclaration.getStart(withNxSource),
|
|
57
|
+
text: (0, devkit_1.stripIndents) `function getWithNxContext() {
|
|
58
|
+
return {
|
|
59
|
+
workspaceRoot: '${devkit_1.workspaceRoot}',
|
|
60
|
+
libsDir: '${(0, devkit_1.workspaceLayout)().libsDir}'
|
|
61
|
+
}
|
|
62
|
+
}`,
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
}
|
|
66
|
+
return withNxContent;
|
|
67
|
+
}
|
|
68
|
+
exports.getWithNxContent = getWithNxContent;
|
|
15
69
|
//# sourceMappingURL=create-next-config-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-next-config-file.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/executors/build/lib/create-next-config-file.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"create-next-config-file.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/executors/build/lib/create-next-config-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.defaultServer = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const express = require("express");
|
|
6
|
-
const next_1 = require("next");
|
|
7
6
|
/**
|
|
8
7
|
* Adapted from https://github.com/zeit/next.js/blob/master/examples/with-custom-reverse-proxy/server.js
|
|
9
8
|
* @param settings
|
|
10
9
|
*/
|
|
11
10
|
function defaultServer(settings, proxyConfig) {
|
|
12
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
const
|
|
12
|
+
const next = require('next');
|
|
13
|
+
const app = next(settings);
|
|
14
14
|
const handle = app.getRequestHandler();
|
|
15
15
|
yield app.prepare();
|
|
16
16
|
const server = express();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-server.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/executors/server/lib/default-server.ts"],"names":[],"mappings":";;;;AAAA,mCAAmC;
|
|
1
|
+
{"version":3,"file":"default-server.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/executors/server/lib/default-server.ts"],"names":[],"mappings":";;;;AAAA,mCAAmC;AAGnC;;;GAGG;AACH,SAAsB,aAAa,CACjC,QAA2B,EAC3B,WAAyB;;QAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAEvC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAoB,OAAO,EAAE,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAE/B,oBAAoB;QACpB,IAAI,WAAW,EAAE;YACf,MAAM,eAAe,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAAC,qBAAqB,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;SACJ;QAED,wEAAwE;QACxE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;CAAA;AA1BD,sCA0BC"}
|
|
@@ -14,6 +14,7 @@ const init_1 = require("../init/init");
|
|
|
14
14
|
const styles_1 = require("../../utils/styles");
|
|
15
15
|
const add_linting_1 = require("./lib/add-linting");
|
|
16
16
|
const custom_server_1 = require("../custom-server/custom-server");
|
|
17
|
+
const update_cypress_tsconfig_1 = require("./lib/update-cypress-tsconfig");
|
|
17
18
|
function applicationGenerator(host, schema) {
|
|
18
19
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
20
|
const options = (0, normalize_options_1.normalizeOptions)(host, schema);
|
|
@@ -24,6 +25,7 @@ function applicationGenerator(host, schema) {
|
|
|
24
25
|
const jestTask = yield (0, add_jest_1.addJest)(host, options);
|
|
25
26
|
const lintTask = yield (0, add_linting_1.addLinting)(host, options);
|
|
26
27
|
(0, update_jest_config_1.updateJestConfig)(host, options);
|
|
28
|
+
(0, update_cypress_tsconfig_1.updateCypressTsConfig)(host, options);
|
|
27
29
|
const styledTask = (0, styles_1.addStyleDependencies)(host, options.style);
|
|
28
30
|
(0, set_defaults_1.setDefaults)(host, options);
|
|
29
31
|
if (options.customServer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../../../packages/next/src/generators/application/application.ts"],"names":[],"mappings":";;;;AAAA,uCAKoB;AAEpB,+DAA2D;AAE3D,mDAA+C;AAC/C,6CAAyC;AACzC,mDAA+C;AAC/C,6EAAwE;AACxE,qDAAiD;AACjD,iEAA4D;AAC5D,uCAAiD;AACjD,+CAA0D;AAC1D,mDAA+C;AAC/C,kEAAuE;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../../../packages/next/src/generators/application/application.ts"],"names":[],"mappings":";;;;AAAA,uCAKoB;AAEpB,+DAA2D;AAE3D,mDAA+C;AAC/C,6CAAyC;AACzC,mDAA+C;AAC/C,6EAAwE;AACxE,qDAAiD;AACjD,iEAA4D;AAC5D,uCAAiD;AACjD,+CAA0D;AAC1D,mDAA+C;AAC/C,kEAAuE;AACvE,2EAAsE;AAEtE,SAAsB,oBAAoB,CAAC,IAAU,EAAE,MAAc;;QACnE,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAiB,EAAC,IAAI,kCACxC,OAAO,KACV,UAAU,EAAE,IAAI,IAChB,CAAC;QACH,IAAA,iDAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,IAAA,wBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1B,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAO,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,IAAA,qCAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,IAAA,+CAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,IAAA,6BAAoB,EAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAA,0BAAW,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3B,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,MAAM,IAAA,qCAAqB,EAAC,IAAI,EAAE;gBAChC,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;aACtC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,yBAAgB,EACrB,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,UAAU,CACX,CAAC;IACJ,CAAC;CAAA;AAnCD,oDAmCC;AAEY,QAAA,oBAAoB,GAAG,IAAA,2BAAkB,EAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -30,7 +30,7 @@ const plugins = [
|
|
|
30
30
|
withNx,
|
|
31
31
|
];
|
|
32
32
|
|
|
33
|
-
module.exports = composePlugins(...plugins)(nextConfig)
|
|
33
|
+
module.exports = composePlugins(...plugins)(nextConfig);
|
|
34
34
|
<% } else if (style === 'styl') { %>
|
|
35
35
|
const { withStylus } = require('@nx/next/plugins/with-stylus');
|
|
36
36
|
|
|
@@ -4,13 +4,14 @@ exports.addProject = void 0;
|
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
function addProject(host, options) {
|
|
6
6
|
const targets = {};
|
|
7
|
+
const outputPath = (0, devkit_1.joinPathFragments)('dist', options.appProjectRoot, ...(options.rootProject ? [options.name] : []));
|
|
7
8
|
targets.build = {
|
|
8
9
|
executor: '@nx/next:build',
|
|
9
10
|
outputs: ['{options.outputPath}'],
|
|
10
11
|
defaultConfiguration: 'production',
|
|
11
12
|
options: {
|
|
12
13
|
root: options.appProjectRoot,
|
|
13
|
-
outputPath:
|
|
14
|
+
outputPath: outputPath,
|
|
14
15
|
},
|
|
15
16
|
configurations: {
|
|
16
17
|
development: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/generators/application/lib/add-project.ts"],"names":[],"mappings":";;;AACA,uCAKoB;AAEpB,SAAgB,UAAU,CAAC,IAAU,EAAE,OAAyB;IAC9D,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,OAAO,CAAC,KAAK,GAAG;QACd,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,oBAAoB,EAAE,YAAY;QAClC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,cAAc;YAC5B,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"add-project.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/generators/application/lib/add-project.ts"],"names":[],"mappings":";;;AACA,uCAKoB;AAEpB,SAAgB,UAAU,CAAC,IAAU,EAAE,OAAyB;IAC9D,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAClC,MAAM,EACN,OAAO,CAAC,cAAc,EACtB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/C,CAAC;IACF,OAAO,CAAC,KAAK,GAAG;QACd,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,CAAC,sBAAsB,CAAC;QACjC,oBAAoB,EAAE,YAAY;QAClC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,cAAc;YAC5B,UAAU,EAAE,UAAU;SACvB;QACD,cAAc,EAAE;YACd,WAAW,EAAE;gBACX,UAAU,EAAE,OAAO,CAAC,cAAc;aACnC;YACD,UAAU,EAAE,EAAE;SACf;KACF,CAAC;IAEF,OAAO,CAAC,KAAK,GAAG;QACd,QAAQ,EAAE,iBAAiB;QAC3B,oBAAoB,EAAE,aAAa;QACnC,OAAO,EAAE;YACP,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,QAAQ;YAC3C,GAAG,EAAE,IAAI;SACV;QACD,cAAc,EAAE;YACd,WAAW,EAAE;gBACX,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,oBAAoB;gBACvD,GAAG,EAAE,IAAI;aACV;YACD,UAAU,EAAE;gBACV,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,mBAAmB;gBACtD,GAAG,EAAE,KAAK;aACX;SACF;KACF,CAAC;IAEF,OAAO,CAAC,MAAM,GAAG;QACf,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE;YACP,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,mBAAmB;SACvD;KACF,CAAC;IAEF,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,OAAO,CAAC,cAAc;QAC5B,UAAU,EAAE,OAAO,CAAC,cAAc;QAClC,WAAW,EAAE,aAAa;QAC1B,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,UAAU;KACzB,CAAC;IAEF,IAAA,gCAAuB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,oBAC5C,OAAO,EACV,CAAC;AACL,CAAC;AA7DD,gCA6DC"}
|
|
@@ -13,6 +13,7 @@ function createApplicationFiles(host, options) {
|
|
|
13
13
|
(0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, '../files/common'), options.appProjectRoot, templateVariables);
|
|
14
14
|
if (options.appDir) {
|
|
15
15
|
(0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, '../files/app'), (0, path_1.join)(options.appProjectRoot, 'app'), templateVariables);
|
|
16
|
+
host.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, 'specs', `index.spec.${options.js ? 'jsx' : 'tsx'}`));
|
|
16
17
|
}
|
|
17
18
|
else {
|
|
18
19
|
(0, devkit_1.generateFiles)(host, (0, path_1.join)(__dirname, '../files/pages'), (0, path_1.join)(options.appProjectRoot, 'pages'), templateVariables);
|
|
@@ -21,6 +22,9 @@ function createApplicationFiles(host, options) {
|
|
|
21
22
|
(0, devkit_1.updateJson)(host, 'tsconfig.base.json', (json) => {
|
|
22
23
|
const appJSON = (0, devkit_1.readJson)(host, 'tsconfig.json');
|
|
23
24
|
let { extends: _ } = json, updatedJson = tslib_1.__rest(json, ["extends"]);
|
|
25
|
+
// Don't generate the `paths` object or else workspace libs will not work later.
|
|
26
|
+
// It'll be generated as needed when a lib is first added.
|
|
27
|
+
delete json.compilerOptions.paths;
|
|
24
28
|
updatedJson = Object.assign(Object.assign({}, devkit_1.updateJson), { compilerOptions: Object.assign(Object.assign({}, updatedJson.compilerOptions), appJSON.compilerOptions), include: [
|
|
25
29
|
...new Set([
|
|
26
30
|
...(updatedJson.include || []),
|
|
@@ -31,6 +35,7 @@ function createApplicationFiles(host, options) {
|
|
|
31
35
|
...(updatedJson.exclude || []),
|
|
32
36
|
...(appJSON.exclude || []),
|
|
33
37
|
'**e2e/**/*',
|
|
38
|
+
`dist/${options.name}/**/*`,
|
|
34
39
|
]),
|
|
35
40
|
] });
|
|
36
41
|
return updatedJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-application-files.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/generators/application/lib/create-application-files.ts"],"names":[],"mappings":";;;;AAAA,+BAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"create-application-files.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/generators/application/lib/create-application-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateCypressTsConfig = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
function updateCypressTsConfig(host, options) {
|
|
6
|
+
if (options.e2eTestRunner !== 'cypress' || !options.rootProject) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
(0, devkit_1.updateJson)(host, `${options.e2eProjectRoot}/${options.e2eProjectName}/tsconfig.json`, (json) => {
|
|
10
|
+
return Object.assign(Object.assign({}, json), { exclude: [] });
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
exports.updateCypressTsConfig = updateCypressTsConfig;
|
|
14
|
+
//# sourceMappingURL=update-cypress-tsconfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-cypress-tsconfig.js","sourceRoot":"","sources":["../../../../../../../packages/next/src/generators/application/lib/update-cypress-tsconfig.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAG9C,SAAgB,qBAAqB,CAAC,IAAU,EAAE,OAAyB;IACzE,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;QAC/D,OAAO;KACR;IAED,IAAA,mBAAU,EACR,IAAI,EACJ,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,gBAAgB,EACnE,CAAC,IAAI,EAAE,EAAE;QACP,uCACK,IAAI,KACP,OAAO,EAAE,EAAE,IACX;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAfD,sDAeC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
2
|
+
import { CypressComponentConfigurationGeneratorSchema } from './schema';
|
|
3
|
+
export declare function cypressComponentConfiguration(tree: Tree, options: CypressComponentConfigurationGeneratorSchema): Promise<GeneratorCallback>;
|
|
4
|
+
export default cypressComponentConfiguration;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cypressComponentConfiguration = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const devkit_1 = require("@nx/devkit");
|
|
6
|
+
const ct_utils_1 = require("@nx/react/src/utils/ct-utils");
|
|
7
|
+
const versions_1 = require("../../utils/versions");
|
|
8
|
+
const react_1 = require("@nx/react");
|
|
9
|
+
function cypressComponentConfiguration(tree, options) {
|
|
10
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
const tasks = [];
|
|
12
|
+
const { cypressComponentProject } = (0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
|
|
13
|
+
tasks.push(yield cypressComponentProject(tree, {
|
|
14
|
+
project: options.project,
|
|
15
|
+
skipFormat: true,
|
|
16
|
+
}));
|
|
17
|
+
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
18
|
+
projectConfig.targets['component-test'].options = Object.assign(Object.assign({}, projectConfig.targets['component-test'].options), { skipServe: true });
|
|
19
|
+
(0, devkit_1.updateProjectConfiguration)(tree, options.project, projectConfig);
|
|
20
|
+
yield addFiles(tree, projectConfig, options);
|
|
21
|
+
const { webpackInitGenerator } = (0, devkit_1.ensurePackage)('@nx/webpack', versions_1.nxVersion);
|
|
22
|
+
tasks.push(yield webpackInitGenerator(tree, {
|
|
23
|
+
compiler: 'swc',
|
|
24
|
+
uiFramework: 'react',
|
|
25
|
+
skipFormat: true,
|
|
26
|
+
}));
|
|
27
|
+
if (!options.skipFormat) {
|
|
28
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
29
|
+
}
|
|
30
|
+
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
exports.cypressComponentConfiguration = cypressComponentConfiguration;
|
|
34
|
+
function addFiles(tree, projectConfig, opts) {
|
|
35
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const cypressConfigPath = (0, devkit_1.joinPathFragments)(projectConfig.root, 'cypress.config.ts');
|
|
37
|
+
if (tree.exists(cypressConfigPath)) {
|
|
38
|
+
tree.delete(cypressConfigPath);
|
|
39
|
+
}
|
|
40
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), projectConfig.root, {
|
|
41
|
+
tailwind: ['js', 'cjs'].some((ext) => tree.exists((0, devkit_1.joinPathFragments)(projectConfig.root, `tailwind.config.${ext}`))),
|
|
42
|
+
tpl: '',
|
|
43
|
+
});
|
|
44
|
+
const ctFile = (0, devkit_1.joinPathFragments)(projectConfig.root, 'cypress', 'support', 'component.ts');
|
|
45
|
+
tree.write(ctFile, `${tree.read(ctFile, 'utf-8')}import './styles.ct.css';`);
|
|
46
|
+
if (opts.generateTests) {
|
|
47
|
+
const filePaths = [];
|
|
48
|
+
(0, devkit_1.visitNotIgnoredFiles)(tree, projectConfig.sourceRoot, (filePath) => {
|
|
49
|
+
// we don't generate tests for pages/server-side components
|
|
50
|
+
if (filePath.includes('pages') || filePath.includes('server')) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if ((0, ct_utils_1.isComponent)(tree, filePath)) {
|
|
54
|
+
filePaths.push(filePath);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
for (const filePath of filePaths) {
|
|
58
|
+
yield (0, react_1.componentTestGenerator)(tree, {
|
|
59
|
+
project: opts.project,
|
|
60
|
+
componentPath: filePath,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
exports.default = cypressComponentConfiguration;
|
|
67
|
+
//# sourceMappingURL=cypress-component-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypress-component-configuration.js","sourceRoot":"","sources":["../../../../../../packages/next/src/generators/cypress-component-configuration/cypress-component-configuration.ts"],"names":[],"mappings":"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"}
|
package/src/generators/cypress-component-configuration/files/cypress/support/commands.ts__tpl__
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
import { mount } from 'cypress/react18'
|
|
3
|
+
|
|
4
|
+
// ***********************************************
|
|
5
|
+
// This example commands.ts shows you how to
|
|
6
|
+
// create various custom commands and overwrite
|
|
7
|
+
// existing commands.
|
|
8
|
+
//
|
|
9
|
+
// For more comprehensive examples of custom
|
|
10
|
+
// commands please read more here:
|
|
11
|
+
// https://on.cypress.io/custom-commands
|
|
12
|
+
// ***********************************************
|
|
13
|
+
|
|
14
|
+
declare global {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
16
|
+
namespace Cypress {
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
|
+
interface Chainable<Subject> {
|
|
19
|
+
login(email: string, password: string): void;
|
|
20
|
+
mount: typeof mount;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
Cypress.Commands.add('mount', mount)
|
|
26
|
+
|
|
27
|
+
//
|
|
28
|
+
// -- This is a parent command --
|
|
29
|
+
Cypress.Commands.add('login', (email, password) => {
|
|
30
|
+
console.log('Custom command example: Login', email, password);
|
|
31
|
+
});
|
|
32
|
+
//
|
|
33
|
+
// -- This is a child command --
|
|
34
|
+
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
|
35
|
+
//
|
|
36
|
+
//
|
|
37
|
+
// -- This is a dual command --
|
|
38
|
+
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
|
|
39
|
+
//
|
|
40
|
+
//
|
|
41
|
+
// -- This will overwrite an existing command --
|
|
42
|
+
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"cli": "nx",
|
|
4
|
+
"$id": "CypressComponentConfiguration",
|
|
5
|
+
"title": "NextJS Component Testing Configuration",
|
|
6
|
+
"description": "Add Cypress Componet Testing to an existing NextJS project.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"examples": [
|
|
9
|
+
{
|
|
10
|
+
"command": "nx g @nrwl/next:cypress-component-configuration --project=my-next-project",
|
|
11
|
+
"description": "Add component testing to your Next project"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"command": "nx g @nrwl/next:cypress-component-configuration --project=my-next-project --generate-tests",
|
|
15
|
+
"description": "Add component testing to your Next project and generate component tests for your existing components"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"project": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The name of the project to add cypress component testing configuration to",
|
|
22
|
+
"x-dropdown": "projects",
|
|
23
|
+
"x-prompt": "What project should we add Cypress component testing to?",
|
|
24
|
+
"x-priority": "important"
|
|
25
|
+
},
|
|
26
|
+
"generateTests": {
|
|
27
|
+
"type": "boolean",
|
|
28
|
+
"description": "Generate default component tests for existing components in the project",
|
|
29
|
+
"x-prompt": "Automatically generate tests for components declared in this project?",
|
|
30
|
+
"default": false,
|
|
31
|
+
"x-priority": "important"
|
|
32
|
+
},
|
|
33
|
+
"skipFormat": {
|
|
34
|
+
"type": "boolean",
|
|
35
|
+
"description": "Skip formatting files",
|
|
36
|
+
"default": false,
|
|
37
|
+
"x-priority": "internal"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"required": ["project"],
|
|
41
|
+
"examplesFile": "../../../docs/cypress-component-configuration-examples.md"
|
|
42
|
+
}
|
|
@@ -22,7 +22,13 @@ function libraryGenerator(host, rawOptions) {
|
|
|
22
22
|
// This is needed because RSC exported from `src/index.ts` will mark the entire file as server-only and throw an error when used from a client component.
|
|
23
23
|
// See: https://github.com/nrwl/nx/issues/15830
|
|
24
24
|
const serverEntryPath = (0, devkit_1.joinPathFragments)(options.projectRoot, './src', 'server.' + (options.js ? 'js' : 'ts'));
|
|
25
|
-
host.write((0, devkit_1.joinPathFragments)(options.projectRoot, 'src', `server.${options.js ? 'js' : 'ts'}`), `// Use this file to export React server components
|
|
25
|
+
host.write((0, devkit_1.joinPathFragments)(options.projectRoot, 'src', `server.${options.js ? 'js' : 'ts'}`), `// Use this file to export React server components
|
|
26
|
+
export * from './lib/hello-server';`);
|
|
27
|
+
host.write((0, devkit_1.joinPathFragments)(options.projectRoot, 'src/lib', `hello-server.${options.js ? 'js' : 'tsx'}`), `// React server components are async so you make database or API calls.
|
|
28
|
+
export async function HelloServer() {
|
|
29
|
+
return <h1>Hello Server</h1>
|
|
30
|
+
}
|
|
31
|
+
`);
|
|
26
32
|
(0, js_1.addTsConfigPath)(host, `${options.importPath}/server`, [serverEntryPath]);
|
|
27
33
|
(0, devkit_1.updateJson)(host, (0, devkit_1.joinPathFragments)(options.projectRoot, '.babelrc'), (json) => {
|
|
28
34
|
if (options.style === '@emotion/styled') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../../../packages/next/src/generators/library/library.ts"],"names":[],"mappings":";;;;AAAA,uCAQoB;AACpB,sEAAqG;AACrG,+BAAyC;AAEzC,uCAAiD;AAEjD,+DAA2D;AAE3D,SAAsB,gBAAgB,CAAC,IAAU,EAAE,UAAkB;;QACnE,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAiB,EAAC,IAAI,kCACxC,OAAO,KACV,UAAU,EAAE,IAAI,IAChB,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAqB,EAAC,IAAI,kCAC3C,OAAO,KACV,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE,IAAI,IAChB,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAA,0BAAiB,EACjC,OAAO,CAAC,WAAW,EACnB,KAAK,EACL,SAAS,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CACR,SAAS,EACT,8HAA8H,YAAY,EAAE,CAC7I,CAAC;QACF,8GAA8G;QAC9G,yJAAyJ;QACzJ,+CAA+C;QAC/C,MAAM,eAAe,GAAG,IAAA,0BAAiB,EACvC,OAAO,CAAC,WAAW,EACnB,OAAO,EACP,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;QACF,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EACf,OAAO,CAAC,WAAW,EACnB,KAAK,EACL,UAAU,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CACrC,EACD,
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../../../packages/next/src/generators/library/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.composePlugins = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
function composePlugins(...plugins) {
|
|
6
|
+
return function (baseConfig) {
|
|
7
|
+
return function combined(phase, context) {
|
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
9
|
+
let config = baseConfig;
|
|
10
|
+
for (const plugin of plugins) {
|
|
11
|
+
const fn = yield plugin;
|
|
12
|
+
const configOrFn = fn(config);
|
|
13
|
+
if (typeof configOrFn === 'function') {
|
|
14
|
+
config = yield configOrFn(phase, context);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
config = configOrFn;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return config;
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
exports.composePlugins = composePlugins;
|
|
26
|
+
//# sourceMappingURL=compose-plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-plugins.js","sourceRoot":"","sources":["../../../../../packages/next/src/utils/compose-plugins.ts"],"names":[],"mappings":";;;;AAOA,SAAgB,cAAc,CAC5B,GAAG,OAAuD;IAE1D,OAAO,UAAU,UAAsB;QACrC,OAAO,SAAe,QAAQ,CAC5B,KAAa,EACb,OAAY;;gBAEZ,IAAI,MAAM,GAAG,UAAU,CAAC;gBACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC5B,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC;oBACxB,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC9B,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;wBACpC,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;qBAC3C;yBAAM;wBACL,MAAM,GAAG,UAAU,CAAC;qBACrB;iBACF;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC;SAAA,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAtBD,wCAsBC"}
|
package/src/utils/config.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import type { NextConfig } from 'next';
|
|
|
2
2
|
import { Configuration } from 'webpack';
|
|
3
3
|
import { FileReplacement } from './types';
|
|
4
4
|
import { DependentBuildableProjectNode } from '@nx/js/src/utils/buildable-libs-utils';
|
|
5
|
-
export declare function createWebpackConfig(workspaceRoot: string, projectRoot: string, fileReplacements?: FileReplacement[], assets?: any, dependencies?: DependentBuildableProjectNode[], libsDir?: string): (a: any, b: any) => Configuration;
|
|
6
5
|
export interface NextConfigFn {
|
|
7
6
|
(phase: string, context?: any): Promise<NextConfig> | NextConfig;
|
|
8
7
|
}
|
|
@@ -12,4 +11,4 @@ export interface NextPlugin {
|
|
|
12
11
|
export interface NextPluginThatReturnsConfigFn {
|
|
13
12
|
(config: NextConfig): NextConfigFn;
|
|
14
13
|
}
|
|
15
|
-
export declare function
|
|
14
|
+
export declare function createWebpackConfig(workspaceRoot: string, projectRoot: string, fileReplacements?: FileReplacement[], assets?: any, dependencies?: DependentBuildableProjectNode[], libsDir?: string): (a: any, b: any) => Configuration;
|
package/src/utils/config.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
3
|
+
exports.createWebpackConfig = void 0;
|
|
5
4
|
const path_1 = require("path");
|
|
6
5
|
const tsconfig_paths_webpack_plugin_1 = require("tsconfig-paths-webpack-plugin");
|
|
7
6
|
const create_copy_plugin_1 = require("./create-copy-plugin");
|
|
@@ -63,25 +62,4 @@ function isTsRule(r) {
|
|
|
63
62
|
}
|
|
64
63
|
return r.test.test('a.ts');
|
|
65
64
|
}
|
|
66
|
-
function composePlugins(...plugins) {
|
|
67
|
-
return function (baseConfig) {
|
|
68
|
-
return function combined(phase, context) {
|
|
69
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
70
|
-
let config = baseConfig;
|
|
71
|
-
for (const plugin of plugins) {
|
|
72
|
-
const fn = yield plugin;
|
|
73
|
-
const configOrFn = fn(config);
|
|
74
|
-
if (typeof configOrFn === 'function') {
|
|
75
|
-
config = yield configOrFn(phase, context);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
config = configOrFn;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return config;
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
exports.composePlugins = composePlugins;
|
|
87
65
|
//# sourceMappingURL=config.js.map
|
package/src/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/next/src/utils/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/next/src/utils/config.ts"],"names":[],"mappings":"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"}
|