diff --git a/packages/compat/src/standalone-addon-build.ts b/packages/compat/src/standalone-addon-build.ts index ce1de808a..9dcc55b30 100644 --- a/packages/compat/src/standalone-addon-build.ts +++ b/packages/compat/src/standalone-addon-build.ts @@ -52,7 +52,12 @@ ${summarizePeerDepViolations(violations)} }); let fakeTargets = Object.values(index.packages).map(dir => { - return writeFile(join(dir, '..', 'moved-package-target.js'), ''); + let segments = dir.split('/'); + while (segments[segments.length - 1] && segments[segments.length - 1] !== 'node_modules') { + segments.pop(); + } + segments.push('moved-package-target.js'); + return writeFile(join(...segments), ''); }); return broccoliMergeTrees([ diff --git a/packages/core/src/module-resolver.ts b/packages/core/src/module-resolver.ts index 654abe79a..60aca2371 100644 --- a/packages/core/src/module-resolver.ts +++ b/packages/core/src/module-resolver.ts @@ -830,7 +830,11 @@ export class Resolver { } private resolveWithinMovedPackage(request: R, pkg: Package): R { - return request.rehome(resolve(pkg.root, '..', 'moved-package-target.js')).withMeta({ + let levels = ['..']; + if (pkg.name.startsWith('@')) { + levels.push('..'); + } + return request.rehome(resolve(pkg.root, ...levels, 'moved-package-target.js')).withMeta({ resolvedWithinPackage: pkg.root, }); }