* alias and preserveSymlinks are not per-environment options, but they are * included in the resolved environment options for convenience.
( resolve: EnvironmentResolveOptions | undefined, alias: Alias[], preserveSymlinks: boolean, logger: Logger, /** undefined when resolving the top-level resolve options */ consumer: 'client' | 'server' | undefined, // Backward compatibility isSsrTargetWebworkerEnvironment?: boolean, )
| 1098 | * included in the resolved environment options for convenience. |
| 1099 | */ |
| 1100 | function resolveEnvironmentResolveOptions( |
| 1101 | resolve: EnvironmentResolveOptions | undefined, |
| 1102 | alias: Alias[], |
| 1103 | preserveSymlinks: boolean, |
| 1104 | logger: Logger, |
| 1105 | /** undefined when resolving the top-level resolve options */ |
| 1106 | consumer: 'client' | 'server' | undefined, |
| 1107 | // Backward compatibility |
| 1108 | isSsrTargetWebworkerEnvironment?: boolean, |
| 1109 | ): ResolvedAllResolveOptions { |
| 1110 | const resolvedResolve: ResolvedAllResolveOptions = mergeWithDefaults( |
| 1111 | { |
| 1112 | ...configDefaults.resolve, |
| 1113 | mainFields: |
| 1114 | consumer === undefined || |
| 1115 | consumer === 'client' || |
| 1116 | isSsrTargetWebworkerEnvironment |
| 1117 | ? DEFAULT_CLIENT_MAIN_FIELDS |
| 1118 | : DEFAULT_SERVER_MAIN_FIELDS, |
| 1119 | conditions: |
| 1120 | consumer === undefined || |
| 1121 | consumer === 'client' || |
| 1122 | isSsrTargetWebworkerEnvironment |
| 1123 | ? DEFAULT_CLIENT_CONDITIONS |
| 1124 | : DEFAULT_SERVER_CONDITIONS.filter((c) => c !== 'browser'), |
| 1125 | builtins: |
| 1126 | resolve?.builtins ?? |
| 1127 | (consumer === 'server' |
| 1128 | ? isSsrTargetWebworkerEnvironment && resolve?.noExternal === true |
| 1129 | ? [] |
| 1130 | : nodeLikeBuiltins |
| 1131 | : []), |
| 1132 | }, |
| 1133 | resolve ?? {}, |
| 1134 | ) |
| 1135 | resolvedResolve.preserveSymlinks = preserveSymlinks |
| 1136 | resolvedResolve.alias = alias |
| 1137 | |
| 1138 | if ( |
| 1139 | // @ts-expect-error removed field |
| 1140 | resolve?.browserField === false && |
| 1141 | resolvedResolve.mainFields.includes('browser') |
| 1142 | ) { |
| 1143 | logger.warn( |
| 1144 | colors.yellow( |
| 1145 | `\`resolve.browserField\` is set to false, but the option is removed in favour of ` + |
| 1146 | `the 'browser' string in \`resolve.mainFields\`. You may want to update \`resolve.mainFields\` ` + |
| 1147 | `to remove the 'browser' string and preserve the previous browser behaviour.`, |
| 1148 | ), |
| 1149 | ) |
| 1150 | } |
| 1151 | return resolvedResolve |
| 1152 | } |
| 1153 | |
| 1154 | function resolveResolveOptions( |
| 1155 | resolve: AllResolveOptions | undefined, |
no test coverage detected