Skip to content

Commit

Permalink
fix(script): resolve external requests using @file-services/resolve (
Browse files Browse the repository at this point in the history
  • Loading branch information
RomanYarik authored Dec 27, 2021
1 parent 2521f77 commit af527e8
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
1 change: 1 addition & 0 deletions packages/scripts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
},
"dependencies": {
"@file-services/node": "^5.4.3",
"@file-services/resolve": "^5.6.0",
"@file-services/types": "^5.4.0",
"@types/express": "^4.17.13",
"@wixc3/create-disposables": "^1.0.0",
Expand Down
16 changes: 12 additions & 4 deletions packages/scripts/src/create-webpack-configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import webpack from 'webpack';
import HtmlWebpackPlugin from 'html-webpack-plugin';
import semverLessThan from 'semver/functions/lt';
import type { SetMultiMap, TopLevelConfig } from '@wixc3/engine-core';
import { createRequestResolver } from '@file-services/resolve';
import {
createMainEntrypoint,
createExternalBrowserEntrypoint,
Expand Down Expand Up @@ -218,6 +219,7 @@ export function createWebpackConfigForExternalFeature({
if (!feature) {
throw new Error(`${featureName!} was not found after analyzing features`);
}
const resolver = createRequestResolver({ fs });

const { module: baseModule = {} } = baseConfig;
const { rules: baseRules = [] } = baseModule;
Expand Down Expand Up @@ -249,7 +251,8 @@ export function createWebpackConfigForExternalFeature({
}
}
const { loaderRule, entries } = createVirtualEntries(entryModules);
const extractExternalsMethod = extractExternals(filePath, Object.keys(entries));

const extractExternalsMethod = extractExternals(filePath, Object.keys(entries), resolver);

const webpackConfig: webpack.Configuration = {
...baseConfig,
Expand Down Expand Up @@ -288,7 +291,7 @@ export function createWebpackConfigForExternalFeature({
}

const extractExternals =
(featurePath: string, ignoredRequests: string[]) =>
(featurePath: string, ignoredRequests: string[], resolver: ReturnType<typeof createRequestResolver>) =>
({ context, request }: { context?: string; request?: string }, cb: (e?: Error, target?: string) => void) => {
try {
if (
Expand All @@ -300,8 +303,13 @@ const extractExternals =
) {
return cb();
}
const resolvedRequest = require.resolve(request, { paths: [context] });
if (resolvedRequest !== featurePath && fs.basename(resolvedRequest).includes('.feature.')) {

const { resolvedFile: resolvedRequest } = resolver(context, request);
if (
resolvedRequest &&
resolvedRequest !== featurePath &&
fs.basename(resolvedRequest).includes('.feature.')
) {
const packageJson = fs.findClosestFileSync(fs.dirname(resolvedRequest), 'package.json');
if (!packageJson) {
throw new Error(`could not find package.json for ${resolvedRequest}`);
Expand Down
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@
dependencies:
"@file-services/types" "^5.4.0"

"@file-services/resolve@^5.6.0":
version "5.6.0"
resolved "https://registry.yarnpkg.com/@file-services/resolve/-/resolve-5.6.0.tgz#431a19005bf5babe4f560c9e44b0b0cdf78d5b46"
integrity sha512-xKQX+5JAnawEthfibRBIaUdW/faPzH2KKwlOqG2Sn5EPVCOtFecJO38cJhSb2EsRzczyg8L6s8IQB5dUoCgmFA==

"@file-services/types@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@file-services/types/-/types-5.4.0.tgz#26bd7485ad22de1572fa045ca3f739eef851c99c"
Expand Down

0 comments on commit af527e8

Please sign in to comment.