@@ -1234,7 +1234,7 @@ const visitNodeModuleResolution = async ({
12341234 projectDirectoryUrl,
12351235 visitors,
12361236 packagesManualOverrides,
1237- exportsFieldWarningEnabled
1237+ exportsFieldWarningConfig
12381238} ) => {
12391239 const projectPackageFileUrl = filesystem . resolveUrl ( "./package.json" , projectDirectoryUrl ) ;
12401240 const findNodeModulePackage = createFindNodeModulePackage ( ) ;
@@ -1255,7 +1255,8 @@ const visitNodeModuleResolution = async ({
12551255 const visit = async ( {
12561256 packageVisitors,
12571257 packageInfo,
1258- packageImporterInfo
1258+ packageImporterInfo,
1259+ isDevDependency
12591260 } ) => {
12601261 const packageName = packageInfo . object . name ;
12611262
@@ -1284,18 +1285,21 @@ const visitNodeModuleResolution = async ({
12841285
12851286 await visitDependencies ( {
12861287 packageVisitors,
1287- packageInfo
1288+ packageInfo,
1289+ isDevDependency
12881290 } ) ;
12891291 await visitPackage ( {
12901292 packageVisitors,
12911293 packageInfo,
1292- packageImporterInfo
1294+ packageImporterInfo,
1295+ isDevDependency
12931296 } ) ;
12941297 } ;
12951298
12961299 const visitDependencies = async ( {
12971300 packageVisitors,
1298- packageInfo
1301+ packageInfo,
1302+ isDevDependency
12991303 } ) => {
13001304 const dependencyMap = packageDependenciesFromPackageObject ( packageInfo . object ) ;
13011305 await Promise . all ( Object . keys ( dependencyMap ) . map ( async dependencyName => {
@@ -1318,7 +1322,8 @@ const visitNodeModuleResolution = async ({
13181322 packageVisitors : visitorsForDevDependencies ,
13191323 packageInfo,
13201324 dependencyName,
1321- dependencyInfo
1325+ dependencyInfo,
1326+ isDevDependency : true
13221327 } ) ;
13231328 return ;
13241329 }
@@ -1327,7 +1332,8 @@ const visitNodeModuleResolution = async ({
13271332 packageVisitors,
13281333 packageInfo,
13291334 dependencyName,
1330- dependencyInfo
1335+ dependencyInfo,
1336+ isDevDependency
13311337 } ) ;
13321338 } ) ) ;
13331339 } ;
@@ -1336,7 +1342,8 @@ const visitNodeModuleResolution = async ({
13361342 packageVisitors,
13371343 packageInfo,
13381344 dependencyName,
1339- dependencyInfo
1345+ dependencyInfo,
1346+ isDevDependency
13401347 } ) => {
13411348 const dependencyData = await findDependency ( {
13421349 packageFileUrl : packageInfo . url ,
@@ -1380,14 +1387,16 @@ const visitNodeModuleResolution = async ({
13801387 name : dependencyName ,
13811388 object : dependencyPackageJsonObject
13821389 } ,
1383- packageImporterInfo : packageInfo
1390+ packageImporterInfo : packageInfo ,
1391+ isDevDependency
13841392 } ) ;
13851393 } ;
13861394
13871395 const visitPackage = async ( {
13881396 packageVisitors,
13891397 packageInfo,
1390- packageImporterInfo
1398+ packageImporterInfo,
1399+ isDevDependency
13911400 } ) => {
13921401 const packageDerivedInfo = computePackageDerivedInfo ( {
13931402 projectDirectoryUrl,
@@ -1575,15 +1584,17 @@ const visitNodeModuleResolution = async ({
15751584 await visitPackageMain ( {
15761585 packageVisitors,
15771586 packageInfo,
1578- packageDerivedInfo
1587+ packageDerivedInfo,
1588+ isDevDependency
15791589 } ) ;
15801590 }
15811591 } ;
15821592
15831593 const visitPackageMain = async ( {
15841594 packageVisitors,
15851595 packageInfo,
1586- packageDerivedInfo
1596+ packageDerivedInfo,
1597+ isDevDependency
15871598 } ) => {
15881599 const {
15891600 packageIsRoot,
@@ -1599,11 +1610,21 @@ const visitNodeModuleResolution = async ({
15991610 packageConditions : visitor . packageConditions
16001611 } ) ;
16011612
1602- if ( exportsFieldWarningEnabled && mainResolutionInfo . packageEntryFieldName !== "main" ) {
1603- warn ( createPreferExportsFieldWarning ( {
1613+ if ( mainResolutionInfo . packageEntryFieldName !== "main" ) {
1614+ const shouldWarn = shouldWarnAboutExportsField ( {
1615+ exportsFieldWarningConfig,
1616+ isDevDependency
1617+ } ) ;
1618+ const exportsFieldMessage = createPreferExportsFieldWarning ( {
16041619 packageInfo,
16051620 packageEntryFieldName : mainResolutionInfo . packageEntryFieldName
1606- } ) ) ;
1621+ } ) ;
1622+
1623+ if ( shouldWarn ) {
1624+ warn ( exportsFieldMessage ) ;
1625+ } else {
1626+ logger$1 . debug ( exportsFieldMessage ) ;
1627+ }
16071628 }
16081629
16091630 if ( ! mainResolutionInfo . found ) {
@@ -1699,7 +1720,8 @@ const visitNodeModuleResolution = async ({
16991720 object : projectPackageObject
17001721 } ,
17011722 packageImporterInfo : null ,
1702- packageVisitors : visitors
1723+ packageVisitors : visitors ,
1724+ isDevDependency : false
17031725 } ) ;
17041726} ;
17051727
@@ -1856,6 +1878,21 @@ const computePackageDerivedInfo = ({
18561878 } ;
18571879} ;
18581880
1881+ const shouldWarnAboutExportsField = ( {
1882+ exportsFieldWarningConfig,
1883+ isDevDependency
1884+ } ) => {
1885+ if ( ! exportsFieldWarningConfig ) {
1886+ return false ;
1887+ }
1888+
1889+ if ( isDevDependency ) {
1890+ return exportsFieldWarningConfig . devDependencies ;
1891+ }
1892+
1893+ return exportsFieldWarningConfig . dependencies ;
1894+ } ;
1895+
18591896const createExportsWildcardIgnoredWarning = ( {
18601897 key,
18611898 value,
@@ -2877,7 +2914,7 @@ const writeImportMapFiles = async ({
28772914 warn ( warning ) ;
28782915 } ,
28792916 writeFiles = true ,
2880- exportsFieldWarningEnabled = false ,
2917+ exportsFieldWarningConfig ,
28812918 // for unit test
28822919 jsConfigFileUrl
28832920} ) => {
@@ -2954,10 +2991,10 @@ const writeImportMapFiles = async ({
29542991 await visitNodeModuleResolution ( {
29552992 logger : logger$1 ,
29562993 warn,
2957- exportsFieldWarningEnabled,
29582994 projectDirectoryUrl,
29592995 visitors : nodeResolutionVisitors ,
2960- packagesManualOverrides
2996+ packagesManualOverrides,
2997+ exportsFieldWarningConfig
29612998 } ) ;
29622999 }
29633000
0 commit comments