Skip to content

Commit

Permalink
Revert "fix(core): local plugins should resolve in package-manager wo…
Browse files Browse the repository at this point in the history
…rkspaces (#9913)" (#9955)

This reverts commit 2d2c8a7.
  • Loading branch information
FrozenPandaz committed Apr 22, 2022
1 parent fa1bc7b commit 14d9e69
Showing 1 changed file with 39 additions and 40 deletions.
79 changes: 39 additions & 40 deletions packages/nx/src/utils/nx-plugin.ts
Expand Up @@ -47,34 +47,30 @@ export function loadNxPlugins(
? nxPluginCache ||
(nxPluginCache = plugins.map((moduleName) => {
let pluginPath: string;
let pluginName: string;
if (['.js', '.ts'].includes(path.extname(moduleName))) {
if (
path.extname(moduleName) === '.ts' &&
!tsNodeAndPathsRegistered
) {
registerTSTranspiler();
}
pluginPath = require.resolve(moduleName, { paths });
pluginName = path.basename(moduleName);
} else {
const localPlugin = resolveLocalNxPlugin(moduleName);
pluginName = moduleName;
if (localPlugin) {
try {
pluginPath = require.resolve(moduleName, {
paths,
});
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND') {
const plugin = resolveLocalNxPlugin(moduleName);
const main = readPluginMainFromProjectConfiguration(
localPlugin.projectConfig
plugin.projectConfig
);
pluginPath = main
? path.join(workspaceRoot, main)
: localPlugin.path;
pluginPath = main ? path.join(workspaceRoot, main) : plugin.path;
} else {
pluginPath = require.resolve(moduleName, {
paths,
});
throw e;
}
}
const packageJsonPath = path.join(pluginPath, 'package.json');
const { name } =
!['.ts', '.js'].some((x) => x === path.extname(pluginPath)) && // Not trying to point to a ts or js file
existsSync(packageJsonPath) // plugin has a package.json
? readJsonFile(packageJsonPath) // read name from package.json
: { name: path.basename(pluginPath) }; // use the name of the file we point to
const plugin = require(pluginPath) as NxPlugin;
plugin.name = pluginName;
plugin.name = name;

return plugin;
}))
: [];
Expand Down Expand Up @@ -111,23 +107,27 @@ export function readPluginPackageJson(
path: string;
json: PackageJson;
} {
// Check for matching local plugin
const localPluginPath = resolveLocalNxPlugin(pluginName);
if (localPluginPath) {
const localPluginPackageJson = path.join(
localPluginPath.path,
'package.json'
);
return {
path: localPluginPackageJson,
json: readJsonFile(localPluginPackageJson),
};
let packageJsonPath: string;
try {
packageJsonPath = require.resolve(`${pluginName}/package.json`, {
paths,
});
} catch (e) {
if (e.code === 'MODULE_NOT_FOUND') {
const localPluginPath = resolveLocalNxPlugin(pluginName);
if (localPluginPath) {
const localPluginPackageJson = path.join(
localPluginPath.path,
'package.json'
);
return {
path: localPluginPackageJson,
json: readJsonFile(localPluginPackageJson),
};
}
}
throw e;
}

// Fallback to installed plugins
const packageJsonPath = require.resolve(`${pluginName}/package.json`, {
paths,
});
return { json: readJsonFile(packageJsonPath), path: packageJsonPath };
}

Expand Down Expand Up @@ -223,8 +223,7 @@ function readTsConfigPaths(root: string = workspaceRoot) {
.map((x) => path.join(root, x))
.filter((x) => existsSync(x))[0];
if (!tsconfigPath) {
tsconfigPaths = {};
return {};
throw new Error('unable to find tsconfig.base.json or tsconfig.json');
}
const { compilerOptions } = readJsonFile(tsconfigPath);
tsconfigPaths = compilerOptions?.paths;
Expand Down

0 comments on commit 14d9e69

Please sign in to comment.