Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

export * as x from "..." are never deferred #7227

Open
mischnic opened this issue Nov 1, 2021 · 6 comments
Open

export * as x from "..." are never deferred #7227

mischnic opened this issue Nov 1, 2021 · 6 comments

Comments

@mischnic
Copy link
Member

mischnic commented Nov 1, 2021

🐛 bug report

export-namespace-as reexports are never deferred, even if they are statically unused.

🤔 Expected Behavior

If b isn't imported, then export * as b from "./other.js"; can be deferred.

😯 Current Behavior

It's not deferred.

💁 Possible Solution

!dependencySymbols.has('*')

💻 Code Sample

{
	"sideEffects": [
		"index.js"
	]
}
// index.js
import { a } from "./lib.js";
console.log(a);

// lib.js
export const a = 2;
export * as b from "./other.js";

// other.js
export const x = 22;
export const y = 33;

🌍 Your Environment

Software Version(s)
Parcel c8a64c9
@rmja
Copy link
Contributor

rmja commented May 11, 2022

I am also having this issue. Basically what I want is to have something like this in index.ts:

export * as SomeExternalName from "./internal-module-with-exports;

So that the consumer of the library can do:

import { SomeExternalName } from "my-lib";
SomeExternalName.someFunction();

@mischnic Have you found a workaround?

@mischnic
Copy link
Member Author

Are you seeing some error?

This issue is about an optimization to include less unused code in the final bundle.

@rmja
Copy link
Contributor

rmja commented May 11, 2022

@mischnic I think it is related to this:
#5911

@rmja
Copy link
Contributor

rmja commented May 11, 2022

I get this error:

> parcel build

🚨 Build failed.

@parcel/transformer-typescript-types: node.exportClause.elements is not iterable

  TypeError: node.exportClause.elements is not iterable
  at visit (C:\Source\Utiliread\src\ur-policystore-client\node_modules\@parcel\transformer-typescript-types\lib\collect.js:78:47)
  at visitNodes (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:87646:48)
  at Object.visitEachChild (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:88126:56)
  at visit (C:\Source\Utiliread\src\ur-policystore-client\node_modules\@parcel\transformer-typescript-types\lib\collect.js:124:43)
  at visitNode (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:87593:23)
  at Object.visitEachChild (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:88123:222)
  at visit (C:\Source\Utiliread\src\ur-policystore-client\node_modules\@parcel\transformer-typescript-types\lib\collect.js:124:43)
  at visitNodes (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:87646:48)
  at visitLexicalEnvironment (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:87686:22)
  at Object.visitEachChild (C:\Source\Utiliread\src\ur-policystore-client\node_modules\typescript\lib\typescript.js:88234:55)

@rmja
Copy link
Contributor

rmja commented May 11, 2022

Year, I guess that is in fact the issue that I am having. Thought they were related based on the title.

@mverissimo
Copy link

Any update on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants