diff --git a/.gitignore b/.gitignore index 0b0da04624..0e1b8d1c25 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ .nx/installation .nx/cache .nx/workspace-data +.nx/nxw.js .pnp.* .yarn/* diff --git a/.nx/nxw.js b/.nx/nxw.js deleted file mode 100644 index 2f4503c5aa..0000000000 --- a/.nx/nxw.js +++ /dev/null @@ -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'); diff --git a/nx.json b/nx.json index f584a06908..06481552ec 100644 --- a/nx.json +++ b/nx.json @@ -272,9 +272,6 @@ "inputs": ["default", "^default"] } }, - "installation": { - "version": "22.3.3" - }, "generators": { "@nx/react": { "application": {