jdf2e / nutui-react

京东风格的移动端 React 组件库 、支持多端小程序(A React UI Toolkit for Mobile Web)
https://nutui.jd.com/react/
919 stars 263 forks source link

feat: support replacing the css paths imported from a specified package #2675

Closed oasis-cloud closed 3 weeks ago

oasis-cloud commented 4 weeks ago

image 替换为

import '@nutui/jdesign-icons-react-taro/dist/style_iconfont.css'

Summary by CodeRabbit

coderabbitai[bot] commented 4 weeks ago

Walkthrough

此次更改主要集中在replace-icons.ts文件中的replace函数,新增了条件块以处理sourceLibrarypath.node.source.value不匹配的情况。通过循环检查path.node.source.value是否包含sourceLibrary中的库名,并相应地替换导入语句中的库名。此外,replace-case.test.ts文件中添加了sourceLibrary属性以支持多个库的图标替换。还新增了测试文件replace-icon-css.test.ts以验证图标替换的功能,并引入了Vitest配置文件以支持测试环境的设置。

Changes

文件路径 更改摘要
packages/nutui-replace-icons/src/replace-icons.ts 修改replace函数,新增条件块处理sourceLibrary与导入路径匹配的情况,添加注释以澄清代码目的。
packages/nutui-replace-icons/test/replace-case.test.ts replaceIcons插件配置中添加sourceLibrary属性,支持多个库的图标替换。更新replaceIcons方法签名。
packages/nutui-replace-icons/test/replace-icon-css.test.ts 新增测试文件,验证replaceIcons函数的图标替换功能,使用Babel进行AST转换并进行快照比较。
packages/nutui-replace-icons/vitest.config.ts 新增Vitest配置文件,定义测试配置对象,准备进一步自定义测试参数。

Possibly related PRs

Poem

🐇 在草地上跳跃,欢声笑语,
图标替换,真是乐趣无穷。
新增条件,逻辑更清晰,
测试齐全,确保无误。
兔子们欢呼,代码如歌,
让我们一起,享受这变化! 🌼


📜 Recent review details **Configuration used: CodeRabbit UI** **Review profile: CHILL**
📥 Commits Reviewing files that changed from the base of the PR and between e6d3db2f74cb168bcdab042fc961a7ecd8212b18 and a94c9beb6f6457a48819f687a1b3c9c25ccd211d.
⛔ Files ignored due to path filters (1) * `pnpm-lock.yaml` is excluded by `!**/pnpm-lock.yaml`
📒 Files selected for processing (1) * `packages/nutui-replace-icons/src/replace-icons.ts` (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1) * packages/nutui-replace-icons/src/replace-icons.ts

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
codecov[bot] commented 3 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (next@f313eb3). Learn more about missing BASE report. Report is 2 commits behind head on next.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## next #2675 +/- ## ======================================= Coverage ? 84.07% ======================================= Files ? 217 Lines ? 17830 Branches ? 2608 ======================================= Hits ? 14991 Misses ? 2834 Partials ? 5 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.