-
Notifications
You must be signed in to change notification settings - Fork 262
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
refactor: replace import helper #726
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
giuseppeg
reviewed
Aug 4, 2021
giuseppeg
approved these changes
Aug 5, 2021
🎉 This PR is included in version 3.4.7 🎉 The release is available on: Your semantic-release bot 📦🚀 |
TrySound
pushed a commit
to TrySound/styled-jsx
that referenced
this pull request
Aug 6, 2021
* enhance: use raw imports injection * rm cjs test * remove import path if unused * fix lint * let cjs plugin handle imports * update snapshots * more test as example * only inject at exit
🎉 This PR is included in version 4.0.0-alpha.4 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use import expression injection to replace with
@babel/helper-module-imports
Currently styled-jsx has inconsistence behavior between
styled-jsx/style
andstyled-jsx/css
imports.addDefault
helper will emitstyled-jsx/style
code based on babelsourceType
, butresolve
tags imported fromstyled-jsx/css
aren't handled if it's insourceType="script"
modeFor example, the code below won't be transpiled
But any
<style jsx>
usage in commonjs module will be transpiled and inject the imports/require.Import declarations can be easily captured in AST traversal, but require expressions (w/ or w/o module interop) is hard to be captured. Such as
styled-jsx/css
is using this way to transpilecss
related usages.It's better to only support ESM transform and let other plugin for example (commonjs plugin) to handle the ESM to CJS transform.
Suggested Usage
Use ESModule syntax for jsx styles. If you want to transformed to CJS, use commonjs plugin