chore(nx): remove leftover Nx wrapper artifacts (#17916)
#17147 removed the root ./nx script, but wrapper-mode artifacts were still present (installation in [nx.json](https://github.com/twentyhq/twenty/blob/main/nx.json) and tracked [nxw.js](https://github.com/twentyhq/twenty/blob/main/.nx/nxw.js), leaving an inconsistent setup. This PR completes that cleanup by: - removing installation from nx.json - deleting tracked nxw.js - ignoring nxw.js to prevent accidental re-introduction Validated that Nx still works via yarn nx / npx nx.
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
.nx/installation
|
.nx/installation
|
||||||
.nx/cache
|
.nx/cache
|
||||||
.nx/workspace-data
|
.nx/workspace-data
|
||||||
|
.nx/nxw.js
|
||||||
|
|
||||||
.pnp.*
|
.pnp.*
|
||||||
.yarn/*
|
.yarn/*
|
||||||
|
|||||||
-115
@@ -1,115 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
// This file should be committed to your repository! It wraps Nx and ensures
|
|
||||||
// that your local installation matches nx.json.
|
|
||||||
// See: https://nx.dev/recipes/installation/install-non-javascript for more info.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const cp = require('child_process');
|
|
||||||
const installationPath = path.join(__dirname, 'installation', 'package.json');
|
|
||||||
function matchesCurrentNxInstall(currentInstallation, nxJsonInstallation) {
|
|
||||||
if (!currentInstallation.devDependencies ||
|
|
||||||
!Object.keys(currentInstallation.devDependencies).length) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
if (currentInstallation.devDependencies['nx'] !==
|
|
||||||
nxJsonInstallation.version ||
|
|
||||||
require(path.join(path.dirname(installationPath), 'node_modules', 'nx', 'package.json')).version !== nxJsonInstallation.version) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
for (const [plugin, desiredVersion] of Object.entries(nxJsonInstallation.plugins || {})) {
|
|
||||||
if (currentInstallation.devDependencies[plugin] !== desiredVersion) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function ensureDir(p) {
|
|
||||||
if (!fs.existsSync(p)) {
|
|
||||||
fs.mkdirSync(p, { recursive: true });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function getCurrentInstallation() {
|
|
||||||
try {
|
|
||||||
return require(installationPath);
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
return {
|
|
||||||
name: 'nx-installation',
|
|
||||||
version: '0.0.0',
|
|
||||||
devDependencies: {},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function performInstallation(currentInstallation, nxJson) {
|
|
||||||
fs.writeFileSync(installationPath, JSON.stringify({
|
|
||||||
name: 'nx-installation',
|
|
||||||
devDependencies: {
|
|
||||||
nx: nxJson.installation.version,
|
|
||||||
...nxJson.installation.plugins,
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
try {
|
|
||||||
cp.execSync('npm i', {
|
|
||||||
cwd: path.dirname(installationPath),
|
|
||||||
stdio: 'inherit',
|
|
||||||
});
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
// revert possible changes to the current installation
|
|
||||||
fs.writeFileSync(installationPath, JSON.stringify(currentInstallation));
|
|
||||||
// rethrow
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function ensureUpToDateInstallation() {
|
|
||||||
const nxJsonPath = path.join(__dirname, '..', 'nx.json');
|
|
||||||
let nxJson;
|
|
||||||
try {
|
|
||||||
nxJson = require(nxJsonPath);
|
|
||||||
if (!nxJson.installation) {
|
|
||||||
console.error('[NX]: The "installation" entry in the "nx.json" file is required when running the nx wrapper. See https://nx.dev/recipes/installation/install-non-javascript');
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
console.error('[NX]: The "nx.json" file is required when running the nx wrapper. See https://nx.dev/recipes/installation/install-non-javascript');
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
ensureDir(path.join(__dirname, 'installation'));
|
|
||||||
const currentInstallation = getCurrentInstallation();
|
|
||||||
if (!matchesCurrentNxInstall(currentInstallation, nxJson.installation)) {
|
|
||||||
performInstallation(currentInstallation, nxJson);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
const messageLines = [
|
|
||||||
'[NX]: Nx wrapper failed to synchronize installation.',
|
|
||||||
];
|
|
||||||
if (e instanceof Error) {
|
|
||||||
messageLines.push('');
|
|
||||||
messageLines.push(e.message);
|
|
||||||
messageLines.push(e.stack);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
messageLines.push(e.toString());
|
|
||||||
}
|
|
||||||
console.error(messageLines.join('\n'));
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!process.env.NX_WRAPPER_SKIP_INSTALL) {
|
|
||||||
ensureUpToDateInstallation();
|
|
||||||
}
|
|
||||||
|
|
||||||
require('./installation/node_modules/nx/bin/nx');
|
|
||||||
Reference in New Issue
Block a user