fix: resolving loaders from non-hoisted deps

This commit is contained in:
Igor Randjelovic
2021-04-02 14:53:04 +02:00
parent 1627f52043
commit d8067a553f
9 changed files with 19 additions and 18 deletions

View File

@ -58,7 +58,6 @@ exports[`angular configuration for android 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -364,7 +363,6 @@ exports[`angular configuration for ios 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -52,7 +52,6 @@ exports[`base configuration for android 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -344,7 +343,6 @@ exports[`base configuration for ios 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -52,7 +52,6 @@ exports[`javascript configuration for android 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -382,7 +381,6 @@ exports[`javascript configuration for ios 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -55,7 +55,6 @@ exports[`react configuration > android > adds ReactRefreshWebpackPlugin when HMR
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -375,7 +374,6 @@ exports[`react configuration > android > base config 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -673,7 +671,6 @@ exports[`react configuration > ios > adds ReactRefreshWebpackPlugin when HMR ena
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -994,7 +991,6 @@ exports[`react configuration > ios > base config 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -54,7 +54,6 @@ exports[`svelte configuration for android 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -371,7 +370,6 @@ exports[`svelte configuration for ios 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -52,7 +52,6 @@ exports[`typescript configuration for android 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -382,7 +381,6 @@ exports[`typescript configuration for ios 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -55,7 +55,6 @@ exports[`vue configuration for android 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]
@ -379,7 +378,6 @@ exports[`vue configuration for ios 1`] = `
resolveLoader: {
modules: [
'__jest__/node_modules/@nativescript/webpack/dist/loaders',
'node_modules/@nativescript/webpack/dist/loaders',
'__jest__/node_modules',
'node_modules'
]

View File

@ -66,6 +66,22 @@ jest.mock('path', () => {
return resolved.substr(li);
}
// handle resolutions with __dirname
// used in base config's resolveLoader
const root = path.resolve(__dirname, '..');
if (resolved.startsWith(root)) {
const newPath = resolved.replace(root, '__jest__');
if (newPath.startsWith('__jest__/src')) {
return newPath.replace(
'__jest__/src',
'__jest__/node_modules/@nativescript/webpack/dist'
);
}
return newPath;
}
return resolved;
},
};

View File

@ -113,11 +113,12 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
// look for loaders in
// - node_modules/@nativescript/webpack/dist/loaders
// - node_modules/@nativescript/webpack/node_modules
// - node_modules
// allows for cleaner rules, without having to specify full paths to loaders
config.resolveLoader.modules
.add(getProjectFilePath('node_modules/@nativescript/webpack/dist/loaders'))
.add('node_modules/@nativescript/webpack/dist/loaders')
.add(resolve(__dirname, '../loaders'))
.add(resolve(__dirname, '../../node_modules'))
.add(getProjectFilePath('node_modules'))
.add('node_modules');