@nx/js 16.10.0 → 17.0.0-beta.2
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 +0 -30
- package/package.json +4 -4
- package/src/executors/verdaccio/verdaccio.impl.js +2 -0
- package/src/generators/init/init.js +5 -0
- package/src/generators/library/library.js +4 -1
- package/src/utils/buildable-libs-utils.js +13 -22
- package/src/utils/package-json/update-package-json.js +4 -7
- package/src/migrations/update-13-10-1/update-lib-swcrc-exclude.d.ts +0 -2
- package/src/migrations/update-13-10-1/update-lib-swcrc-exclude.js +0 -31
- package/src/migrations/update-13-8-5/update-node-executor.d.ts +0 -2
- package/src/migrations/update-13-8-5/update-node-executor.js +0 -23
- package/src/migrations/update-13-8-5/update-swcrc.d.ts +0 -2
- package/src/migrations/update-13-8-5/update-swcrc.js +0 -30
- package/src/migrations/update-14-0-0/exclude-jest-config-swcrc.d.ts +0 -3
- package/src/migrations/update-14-0-0/exclude-jest-config-swcrc.js +0 -26
- package/src/migrations/update-14-1-5/update-swcrc-path.d.ts +0 -3
- package/src/migrations/update-14-1-5/update-swcrc-path.js +0 -26
package/migrations.json
CHANGED
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generators": {
|
|
3
|
-
"update-node-executor": {
|
|
4
|
-
"cli": "nx",
|
|
5
|
-
"version": "13.8.5-beta.1",
|
|
6
|
-
"description": "Renames @nrwl/js:node to @nrwl/node:node",
|
|
7
|
-
"factory": "./src/migrations/update-13-8-5/update-node-executor"
|
|
8
|
-
},
|
|
9
|
-
"update-swcrc": {
|
|
10
|
-
"cli": "nx",
|
|
11
|
-
"version": "13.8.5-beta.1",
|
|
12
|
-
"description": "Adjust .swcrc to .lib.swcrc",
|
|
13
|
-
"factory": "./src/migrations/update-13-8-5/update-swcrc"
|
|
14
|
-
},
|
|
15
|
-
"update-swcrc-exclude": {
|
|
16
|
-
"cli": "nx",
|
|
17
|
-
"version": "13.10.1-beta.1",
|
|
18
|
-
"description": "Update .lib.swcrc to exclude missing test files",
|
|
19
|
-
"factory": "./src/migrations/update-13-10-1/update-lib-swcrc-exclude"
|
|
20
|
-
},
|
|
21
|
-
"exclude-jest-config-swcrc": {
|
|
22
|
-
"cli": "nx",
|
|
23
|
-
"version": "14.0.0-beta.2",
|
|
24
|
-
"description": "Exclude jest config from .lib.swcrc",
|
|
25
|
-
"factory": "./src/migrations/update-14-0-0/exclude-jest-config-swcrc"
|
|
26
|
-
},
|
|
27
|
-
"update-swcrc-path": {
|
|
28
|
-
"cli": "nx",
|
|
29
|
-
"version": "14.1.5-beta.0",
|
|
30
|
-
"description": "Rename option swcrcPath to swcrc, and resolve relative to workspace root",
|
|
31
|
-
"factory": "./src/migrations/update-14-1-5/update-swcrc-path"
|
|
32
|
-
},
|
|
33
3
|
"rename-swcrc-config": {
|
|
34
4
|
"cli": "nx",
|
|
35
5
|
"version": "15.8.0-beta.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/js",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.0-beta.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ",
|
|
6
6
|
"repository": {
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"semver": "7.5.3",
|
|
60
60
|
"source-map-support": "0.5.19",
|
|
61
61
|
"tslib": "^2.3.0",
|
|
62
|
-
"@nx/devkit": "
|
|
63
|
-
"@nx/workspace": "
|
|
64
|
-
"@nrwl/js": "
|
|
62
|
+
"@nx/devkit": "17.0.0-beta.2",
|
|
63
|
+
"@nx/workspace": "17.0.0-beta.2",
|
|
64
|
+
"@nrwl/js": "17.0.0-beta.2"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"verdaccio": "^5.0.4"
|
|
@@ -134,6 +134,7 @@ function setupNpm(options) {
|
|
|
134
134
|
}
|
|
135
135
|
else {
|
|
136
136
|
(0, child_process_1.execSync)(`npm config delete registry --location ${options.location}`);
|
|
137
|
+
devkit_1.logger.info('Cleared custom npm registry');
|
|
137
138
|
}
|
|
138
139
|
(0, child_process_1.execSync)(`npm config delete //localhost:${options.port}/:_authToken --location ${options.location}`);
|
|
139
140
|
}
|
|
@@ -196,6 +197,7 @@ function setupYarn(options) {
|
|
|
196
197
|
else {
|
|
197
198
|
(0, child_process_1.execSync)(`yarn config ${isYarnV1 ? 'delete' : 'unset'} ${registryConfigName}` +
|
|
198
199
|
(options.location === 'user' ? ' --home' : ''));
|
|
200
|
+
devkit_1.logger.info(`Cleared custom yarn ${registryConfigName}`);
|
|
199
201
|
}
|
|
200
202
|
if (whitelistedLocalhost) {
|
|
201
203
|
const currentWhitelist = getYarnUnsafeHttpWhitelist(isYarnV1);
|
|
@@ -45,6 +45,10 @@ async function initGenerator(tree, schema) {
|
|
|
45
45
|
const devDependencies = {
|
|
46
46
|
'@nx/js': versions_1.nxVersion,
|
|
47
47
|
prettier: versions_1.prettierVersion,
|
|
48
|
+
// When loading .ts config files (e.g. webpack.config.ts, jest.config.ts, etc.)
|
|
49
|
+
// we prefer to use SWC, and fallback to ts-node for workspaces that don't use SWC.
|
|
50
|
+
'@swc-node/register': versions_1.swcNodeVersion,
|
|
51
|
+
'@swc/core': versions_1.swcCoreVersion,
|
|
48
52
|
};
|
|
49
53
|
if (!schema.js) {
|
|
50
54
|
const installedTsVersion = await getInstalledTypescriptVersion(tree);
|
|
@@ -78,6 +82,7 @@ async function initGenerator(tree, schema) {
|
|
|
78
82
|
# Add files here to ignore them from prettier formatting
|
|
79
83
|
/dist
|
|
80
84
|
/coverage
|
|
85
|
+
/.nx/cache
|
|
81
86
|
`);
|
|
82
87
|
}
|
|
83
88
|
if (tree.exists('.vscode/extensions.json')) {
|
|
@@ -148,6 +148,9 @@ function addProject(tree, options) {
|
|
|
148
148
|
}
|
|
149
149
|
async function addLint(tree, options) {
|
|
150
150
|
const { lintProjectGenerator } = (0, devkit_1.ensurePackage)('@nx/linter', versions_1.nxVersion);
|
|
151
|
+
const { mapLintPattern } =
|
|
152
|
+
// nx-ignore-next-line
|
|
153
|
+
require('@nx/linter/src/generators/lint-project/lint-project');
|
|
151
154
|
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, options.name);
|
|
152
155
|
const task = lintProjectGenerator(tree, {
|
|
153
156
|
project: options.name,
|
|
@@ -158,7 +161,7 @@ async function addLint(tree, options) {
|
|
|
158
161
|
],
|
|
159
162
|
unitTestRunner: options.unitTestRunner,
|
|
160
163
|
eslintFilePatterns: [
|
|
161
|
-
|
|
164
|
+
mapLintPattern(options.projectRoot, options.js ? 'js' : 'ts', options.rootProject),
|
|
162
165
|
],
|
|
163
166
|
setParserOptionsProject: options.setParserOptionsProject,
|
|
164
167
|
rootProject: options.rootProject,
|
|
@@ -49,13 +49,10 @@ function calculateProjectDependencies(projGraph, root, projectName, targetName,
|
|
|
49
49
|
? (0, devkit_1.readJsonFile)(libPackageJsonPath).name // i.e. @workspace/mylib
|
|
50
50
|
: dep,
|
|
51
51
|
outputs: (0, devkit_1.getOutputsForTargetAndConfiguration)({
|
|
52
|
-
|
|
53
|
-
target:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
configuration: configurationName,
|
|
57
|
-
},
|
|
58
|
-
}, depNode),
|
|
52
|
+
project: projectName,
|
|
53
|
+
target: targetName,
|
|
54
|
+
configuration: configurationName,
|
|
55
|
+
}, {}, depNode),
|
|
59
56
|
node: depNode,
|
|
60
57
|
};
|
|
61
58
|
}
|
|
@@ -128,7 +125,7 @@ function calculateDependenciesFromTaskGraph(taskGraph, projectGraph, root, proje
|
|
|
128
125
|
if (depProjectNode?.type !== 'lib') {
|
|
129
126
|
return null;
|
|
130
127
|
}
|
|
131
|
-
let outputs = (0, devkit_1.getOutputsForTargetAndConfiguration)(depTask, depProjectNode);
|
|
128
|
+
let outputs = (0, devkit_1.getOutputsForTargetAndConfiguration)(depTask.target, depTask.overrides, depProjectNode);
|
|
132
129
|
if (outputs.length === 0) {
|
|
133
130
|
nonBuildableDependencies.push(depTask.target.project);
|
|
134
131
|
continue;
|
|
@@ -305,13 +302,10 @@ exports.updatePaths = updatePaths;
|
|
|
305
302
|
*/
|
|
306
303
|
function updateBuildableProjectPackageJsonDependencies(root, projectName, targetName, configurationName, node, dependencies, typeOfDependency = 'dependencies') {
|
|
307
304
|
const outputs = (0, devkit_1.getOutputsForTargetAndConfiguration)({
|
|
308
|
-
|
|
309
|
-
target:
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
configuration: configurationName,
|
|
313
|
-
},
|
|
314
|
-
}, node);
|
|
305
|
+
project: projectName,
|
|
306
|
+
target: targetName,
|
|
307
|
+
configuration: configurationName,
|
|
308
|
+
}, {}, node);
|
|
315
309
|
const packageJsonPath = `${outputs[0]}/package.json`;
|
|
316
310
|
let packageJson;
|
|
317
311
|
let workspacePackageJson;
|
|
@@ -337,13 +331,10 @@ function updateBuildableProjectPackageJsonDependencies(root, projectName, target
|
|
|
337
331
|
let depVersion;
|
|
338
332
|
if (entry.node.type === 'lib') {
|
|
339
333
|
const outputs = (0, devkit_1.getOutputsForTargetAndConfiguration)({
|
|
340
|
-
|
|
341
|
-
target:
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
configuration: configurationName,
|
|
345
|
-
},
|
|
346
|
-
}, entry.node);
|
|
334
|
+
project: projectName,
|
|
335
|
+
target: targetName,
|
|
336
|
+
configuration: configurationName,
|
|
337
|
+
}, {}, entry.node);
|
|
347
338
|
const depPackageJsonPath = (0, path_1.join)(root, outputs[0], 'package.json');
|
|
348
339
|
depVersion = (0, devkit_1.readJsonFile)(depPackageJsonPath).version;
|
|
349
340
|
packageJson[typeOfDependency][packageName] = depVersion;
|
|
@@ -79,13 +79,10 @@ function addMissingDependencies(packageJson, { projectName, targetName, configur
|
|
|
79
79
|
!packageJson.devDependencies?.[packageName] &&
|
|
80
80
|
!packageJson.peerDependencies?.[packageName]) {
|
|
81
81
|
const outputs = (0, devkit_1.getOutputsForTargetAndConfiguration)({
|
|
82
|
-
|
|
83
|
-
target:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
configuration: configurationName,
|
|
87
|
-
},
|
|
88
|
-
}, entry.node);
|
|
82
|
+
project: projectName,
|
|
83
|
+
target: targetName,
|
|
84
|
+
configuration: configurationName,
|
|
85
|
+
}, {}, entry.node);
|
|
89
86
|
const depPackageJsonPath = (0, path_1.join)(root, outputs[0], 'package.json');
|
|
90
87
|
if ((0, fs_1.existsSync)(depPackageJsonPath)) {
|
|
91
88
|
const version = (0, devkit_1.readJsonFile)(depPackageJsonPath).version;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const devkit_1 = require("@nx/devkit");
|
|
4
|
-
const executor_options_utils_1 = require("@nx/devkit/src/generators/executor-options-utils");
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const add_swc_config_1 = require("../../utils/swc/add-swc-config");
|
|
7
|
-
function updateSwcRcExclude(tree) {
|
|
8
|
-
(0, executor_options_utils_1.forEachExecutorOptions)(tree, '@nrwl/js:swc', (config, projectName) => {
|
|
9
|
-
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
|
10
|
-
const libSwcPath = (0, path_1.join)(projectConfig.root, '.lib.swcrc');
|
|
11
|
-
if (!tree.exists(libSwcPath))
|
|
12
|
-
return;
|
|
13
|
-
(0, devkit_1.updateJson)(tree, libSwcPath, (json) => {
|
|
14
|
-
if (json.exclude) {
|
|
15
|
-
const excludePatterns = new Set([
|
|
16
|
-
...add_swc_config_1.defaultExclude,
|
|
17
|
-
...json.exclude,
|
|
18
|
-
]);
|
|
19
|
-
// remove old patterns that are duplicate for new patterns
|
|
20
|
-
// defined in defaultExclude
|
|
21
|
-
excludePatterns.delete('./**/.*.spec.ts$');
|
|
22
|
-
excludePatterns.delete('./src/**/.*.spec.ts$');
|
|
23
|
-
excludePatterns.delete('./**/.*.js$');
|
|
24
|
-
excludePatterns.delete('./src/**/jest-setup.ts$');
|
|
25
|
-
json.exclude = [...excludePatterns];
|
|
26
|
-
}
|
|
27
|
-
return json;
|
|
28
|
-
}, { expectComments: true });
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
exports.default = updateSwcRcExclude;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const devkit_1 = require("@nx/devkit");
|
|
4
|
-
const versions_1 = require("@nx/workspace/src/utils/versions");
|
|
5
|
-
async function update(host) {
|
|
6
|
-
const projects = (0, devkit_1.getProjects)(host);
|
|
7
|
-
let installNeeded = false;
|
|
8
|
-
for (const [name, config] of projects.entries()) {
|
|
9
|
-
if (config?.targets?.serve?.executor !== '@nrwl/js:node')
|
|
10
|
-
continue;
|
|
11
|
-
config.targets.serve.executor = '@nrwl/node:node';
|
|
12
|
-
installNeeded = true;
|
|
13
|
-
(0, devkit_1.updateProjectConfiguration)(host, name, config);
|
|
14
|
-
}
|
|
15
|
-
const task = installNeeded
|
|
16
|
-
? (0, devkit_1.addDependenciesToPackageJson)(host, {}, {
|
|
17
|
-
'@nrwl/node': versions_1.nxVersion,
|
|
18
|
-
})
|
|
19
|
-
: undefined;
|
|
20
|
-
await (0, devkit_1.formatFiles)(host);
|
|
21
|
-
return task;
|
|
22
|
-
}
|
|
23
|
-
exports.default = update;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const devkit_1 = require("@nx/devkit");
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const add_swc_config_1 = require("../../utils/swc/add-swc-config");
|
|
6
|
-
async function update(host) {
|
|
7
|
-
const projects = (0, devkit_1.getProjects)(host);
|
|
8
|
-
for (const config of projects.values()) {
|
|
9
|
-
if (config?.targets?.build?.executor !== '@nrwl/js:swc')
|
|
10
|
-
continue;
|
|
11
|
-
const swcrcPath = (0, path_1.join)(config.root, '.swcrc');
|
|
12
|
-
if (!host.exists(swcrcPath))
|
|
13
|
-
continue;
|
|
14
|
-
// rename
|
|
15
|
-
const libSwcrcPath = (0, path_1.join)(config.root, '.lib.swcrc');
|
|
16
|
-
host.rename(swcrcPath, libSwcrcPath);
|
|
17
|
-
const swcrcContent = (0, devkit_1.readJson)(host, libSwcrcPath);
|
|
18
|
-
// skip if swcrc already has "exclude" field
|
|
19
|
-
if (swcrcContent['exclude'])
|
|
20
|
-
continue;
|
|
21
|
-
// check swcExclude build options
|
|
22
|
-
const exclude = config?.targets?.build?.options?.['swcExclude'] || add_swc_config_1.defaultExclude;
|
|
23
|
-
(0, devkit_1.updateJson)(host, libSwcrcPath, (swcrc) => {
|
|
24
|
-
swcrc['exclude'] = exclude;
|
|
25
|
-
return swcrc;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
await (0, devkit_1.formatFiles)(host);
|
|
29
|
-
}
|
|
30
|
-
exports.default = update;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.excludeJestConfigSwcrc = void 0;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const executor_options_utils_1 = require("@nx/devkit/src/generators/executor-options-utils");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
function excludeJestConfigSwcrc(tree) {
|
|
8
|
-
(0, executor_options_utils_1.forEachExecutorOptions)(tree, '@nrwl/js:swc', (config, projectName) => {
|
|
9
|
-
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
|
10
|
-
const libSwcPath = (0, path_1.join)(projectConfig.root, '.lib.swcrc');
|
|
11
|
-
if (!tree.exists(libSwcPath))
|
|
12
|
-
return;
|
|
13
|
-
(0, devkit_1.updateJson)(tree, libSwcPath, (json) => {
|
|
14
|
-
if (json.exclude) {
|
|
15
|
-
const excludePatterns = new Set([
|
|
16
|
-
'jest.config.js',
|
|
17
|
-
...json.exclude,
|
|
18
|
-
]);
|
|
19
|
-
json.exclude = [...excludePatterns];
|
|
20
|
-
}
|
|
21
|
-
return json;
|
|
22
|
-
}, { expectComments: true });
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
exports.excludeJestConfigSwcrc = excludeJestConfigSwcrc;
|
|
26
|
-
exports.default = excludeJestConfigSwcrc;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateSwcrcPath = void 0;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const executor_options_utils_1 = require("@nx/devkit/src/generators/executor-options-utils");
|
|
6
|
-
async function updateSwcrcPath(tree) {
|
|
7
|
-
let changesMade = false;
|
|
8
|
-
(0, executor_options_utils_1.forEachExecutorOptions)(tree, '@nrwl/js:swc', (_, projectName, targetName, configurationName) => {
|
|
9
|
-
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
|
10
|
-
const executorOptions = configurationName
|
|
11
|
-
? projectConfig.targets[targetName].configurations[configurationName]
|
|
12
|
-
: projectConfig.targets[targetName].options;
|
|
13
|
-
if (!executorOptions.swcrcPath)
|
|
14
|
-
return;
|
|
15
|
-
const newSwcrcPath = (0, devkit_1.joinPathFragments)(projectConfig.root, executorOptions.swcrcPath);
|
|
16
|
-
delete executorOptions.swcrcPath;
|
|
17
|
-
executorOptions.swcrc = newSwcrcPath;
|
|
18
|
-
(0, devkit_1.updateProjectConfiguration)(tree, projectName, projectConfig);
|
|
19
|
-
changesMade = true;
|
|
20
|
-
});
|
|
21
|
-
if (changesMade) {
|
|
22
|
-
await (0, devkit_1.formatFiles)(tree);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.updateSwcrcPath = updateSwcrcPath;
|
|
26
|
-
exports.default = updateSwcrcPath;
|