{"id":557955,"date":"2025-04-16T13:18:26","date_gmt":"2025-04-16T12:18:26","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=webstorm&#038;p=557955"},"modified":"2025-04-17T09:11:05","modified_gmt":"2025-04-17T08:11:05","slug":"webstorm-2025-1","status":"publish","type":"webstorm","link":"https:\/\/blog.jetbrains.com\/zh-hans\/webstorm\/2025\/04\/webstorm-2025-1","title":{"rendered":"WebStorm 2025.1: Major Improvements to JetBrains AI, Enhanced Angular Support, and Better Monorepo Support"},"content":{"rendered":"\n<p>Our first major release of 2025 is here! This version includes major improvements to JetBrains AI, enhanced Angular support, better monorepo support, a range of user experience improvements, and a whole lot more.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2560\" height=\"1440\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/04\/WS-2025-1-Featured.png\" alt=\"\" class=\"wp-image-557977\"\/><\/figure>\n\n\n\n<p><p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/www.jetbrains.com\/webstorm\/download\" target=\"_blank\" rel=\"noopener\">DOWNLOAD WEBSTORM 2025.1<\/a><\/p><\/p>\n\n\n\n<p>To dive deeper into what you can expect in the release, just carry on reading!<\/p>\n\n\n\n<p>The new features and improvements in v2025.1 include:<\/p>\n\n\n\n<ul>\n<li><a href=\"#AI\"><strong>AI enhancements<\/strong><\/a>: AI Assistant and Junie with a free tier, support for more cutting-edge LLMs, improved AI completion for web frameworks, and more.<\/li>\n<li><a href=\"#Angular\"><strong>Angular improvements<\/strong><\/a>: Support for Angular 17.2 signal queries, better reactive forms support, better property suggestions for Angular bindings, and more.<\/li>\n<li><a href=\"#Monorepo\"><strong>Monorepo improvements<\/strong><\/a>: Per-subproject Prettier configuration support, better path alias support for auto-imports in monorepos, and more.<\/li>\n<li><a href=\"#UserX\"><strong>Improved user experience<\/strong><\/a>: Automatic run configurations for Next.js, the floating Show Context Actions toolbar, new file creation in the Project tool window, and more.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\" id=\"AI\">AI enhancements<\/h2>\n\n\n<p>JetBrains AI has received a major upgrade, bringing both AI Assistant and the coding agent, Junie, under a single subscription. With this release, all JetBrains AI features are accessible for free in our IDEs, with unlimited use for some, such as unlimited code completion and local model support, and limited credit-based access to others. We&#8217;re also introducing a new subscription system that makes it easy to scale up as needed with the AI Pro and AI Ultimate tiers.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/04\/WS251-AI-Hub.png\" alt=\"\" class=\"wp-image-557956\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Support for more cutting-edge LLMs<\/h3>\n\n\n<p>JetBrains AI Assistant is advancing its line of models! We\u2019ve added support for Claude 3.7 Sonnet and Claude 3.5 Haiku, now provisioned in Amazon Bedrock. This means you\u2019ll benefit from sharper responses, faster insights, and an even smoother experience. AI Assistant\u2019s lineup of OpenAI models now includes o1, o1-mini, o3-mini, and GPT-4.1 (coming soon).<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/04\/WS-251-AI-LLM-min.png\" alt=\"\" class=\"wp-image-553090\"\/><\/figure>\n\n\n<p>In addition to cloud-based models, you can now connect the AI chat to local models available through Ollama and LM Studio! You can set up local providers via <em>Settings | Tools | AI Assistant | Custom Models:<\/em><\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1602\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-local-llms.png\" alt=\"\" class=\"wp-image-552617\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Improved AI completion for web frameworks<\/h3>\n\n\n<p>For the 2025.1 release, we have focused on improving AI-based completion in the context of web framework components. These changes affect local full line code completion as well as cloud-based completion suggestions:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-ai-completion.png\" alt=\"\" class=\"wp-image-552640\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Enhanced AI test generation<\/h3>\n\n\n<p>AI-powered test generation now offers more careful framework detection, especially for cases when multiple frameworks are present. Additionally, generated tests respect naming conventions:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-AI-test-gen.gif\" alt=\"\" class=\"wp-image-552662\"\/><\/figure>\n\n\n<h2 class=\"wp-block-heading\" id=\"Angular\">Angular improvements<\/h2>\n\n<h3 class=\"wp-block-heading\">Support for Angular 17.2 signal queries<\/h3>\n<p>WebStorm now supports signal queries introduced in Angular 17.2, providing better code insight and navigation for this modern reactive approach to dependency injection. With this update, WebStorm ensures accurate type inference for signal queries, improves code completion within query expressions, and enhances navigation between signals and their references.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/04\/WS251_NG-signal-queries-min.png\" alt=\"\"\/><\/figure>\n<h3 class=\"wp-block-heading\">Better property suggestions for Angular bindings<\/h3>\n\n<p>WebStorm now supports code completion for host binding attributes based on directive selectors. Quick-fixes for creating fields are also available within binding expressions. Moreover, refactoring is supported across your codebase and is even available for CSS classes:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-Angular-host-binding.gif\" alt=\"\" class=\"wp-image-552684\"\/><\/figure>\n\n<h3 class=\"wp-block-heading\">Better reactive forms support<\/h3>\n\n<p>The long-awaited support for reactive forms is here. This update includes code completion, syntax highlighting, validation, refactoring, and quick-fixes for reactive forms. Both declaration styles \u2013 constructor-based and builder-based \u2013 are fully supported.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/04\/WS251-reactive-forms.gif\" alt=\"\" \/><\/figure>\n\n<h3 class=\"wp-block-heading\">Extract of inline component templates<\/h3>\n\n<p>There is also a new intention to extract or inline component templates. Invoke <em>Show Context Actions<\/em> via<em>\u2325\u23ce <\/em>(macOS) or <em>Alt+Enter<\/em> (Windows\/Linux) to use the action:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-Angular-templates.gif\" alt=\"\" class=\"wp-image-552695\"\/><\/figure>\n\n\n<h2 class=\"wp-block-heading\" id=\"Monorepo\">Monorepo improvements<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Per-subproject Prettier configuration support<\/h3>\n\n\n<p>WebStorm now respects Prettier configurations on a per-subproject basis, ensuring that each part of your monorepo or multi-project setup follows its own formatting rules. This improvement provides greater flexibility and consistency when working across different codebases with varying style requirements.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-Prettier-settings.png\" alt=\"\" class=\"wp-image-552795\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Improved performance in large Nx monorepos<\/h3>\n\n\n<p>WebStorm now delivers faster code completion and navigation for large TypeScript monorepos using Nx. This update ensures that code completion, navigation, and auto-imports work seamlessly, even in complex multiproject workspaces, reducing lags and improving overall development efficiency.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Better auto-import and syntax highlighting in monorepos<\/h3>\n\n\n<p>WebStorm now correctly resolves auto-imports and syntax highlighting for sibling packages in monorepos, ensuring a smoother development experience. This fix eliminates issues where dependencies between internal packages weren\u2019t recognized, making navigation and code completion more reliable in multipackage projects.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Improved handling of the exports field in <code>package.json<\/code><\/h3>\n\n\n<p>WebStorm now correctly processes array values in the <code>exports<\/code> field of <code>package.json<\/code>, ensuring proper resolution of module exports. This improvement enhances auto-imports, navigation, and code completion for packages that use the <code>exports<\/code> field, making dependency management more seamless and intuitive.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Better path alias support for auto-imports in monorepos<\/h3>\n\n\n<p>WebStorm now correctly resolves path aliases defined in the <code>exports<\/code> field of <code>package.json<\/code>, ensuring that auto-imports work seamlessly in monorepos. This improvement enhances module resolution, making it easier to navigate and import dependencies across your project.<\/p>\n\n\n<h2 class=\"wp-block-heading\">Frameworks and Technologies<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Next.js improvements<\/h3>\n\n\n<p>WebStorm 2025.1 introduces automatic run configuration creation for Next.js applications. Now, you can easily initiate debug sessions for both the client and server components of your Next.js application using the<em> Run widget<\/em>.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-NextJS-debug-1.png\" alt=\"\" class=\"wp-image-552717\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Vue improvements<\/h3>\n\n\n<p>WebStorm now makes it easier to start new Vue projects with Nuxt CLI (<code>nuxi<\/code>) integration in the <em>New Project<\/em> wizard, allowing for a smoother setup experience.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2000\" height=\"1000\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-Nuxt.png\" alt=\"\" class=\"wp-image-552728\"\/><\/figure>\n\n\n<p>We&#8217;ve also improved support for Vue\u2019s global properties by correctly resolving custom properties added through module augmentation. Additionally, issues with autocomplete and auto-import for packaged components declared with <code>__VLS_WithTemplateSlots<\/code> have been fixed, ensuring a more reliable development experience in Vue projects.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Tailwind CSS 4 support and improved at-rule handling<\/h3>\n\n\n<p>WebStorm now offers full support for Tailwind CSS 4, ensuring compatibility with the latest version of the framework. Additionally, we&#8217;ve improved handling for Tailwind-specific at-rules like <code>@config<\/code>, <code>@plugin<\/code>, and <code>@source<\/code>, providing better file reference support and reducing false warnings. Unknown at-rules and functions from Tailwind v4 are now correctly recognized, making your workflow smoother when working with the latest Tailwind features.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"UserX\">User Experience<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Floating <em>Show Context Actions<\/em> toolbar<\/h3>\n\n\n<p>In WebStorm 2025.1, invoking <em>Show Context Actions<\/em> (<em>\u2325\u23ce<\/em> (macOS) \/ <em>Alt+Enter<\/em> (Windows\/Linux)) now opens the floating toolbar with different action groups. The toolbar also appears when you select code in the editor:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-floaing-toolbar.png\" alt=\"\" class=\"wp-image-552739\"\/><\/figure>\n\n\n<p>The floating toolbar contains the following actions and action groups:<\/p>\n\n\n<ul>\n\n<li>Context actions<\/li>\n\n\n<li>AI Assistant context actions (if the AI Assistant plugin is installed)<\/li>\n\n\n<li>Refactor<\/li>\n\n\n<li>Show usages<\/li>\n\n\n<li>Surround with tag<\/li>\n\n\n<li>Reformat code<\/li>\n\n<\/ul>\n\n\n<p>You can customize the contents of the toolbar by opening the kebab menu (three vertical dots) and selecting the <em>Customize Toolbar\u2026<\/em> option<\/p>\n\n\n<h3 class=\"wp-block-heading\">New file creation in the <em>Project<\/em> tool window<\/h3>\n\n\n<p>Creating new files is now easier in the <em>Project <\/em>tool window. You can simply use the <code>+<\/code> icon located directly in the window\u2019s toolbar:<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1600\" height=\"800\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/WS251-new-file-from-project-view.png\" alt=\"\" class=\"wp-image-552750\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\">Option to set automatic plugin updates<\/h3>\n\n\n<p>You can set WebStorm to automatically update plugins in the background. It will download available and compatible updates and apply them on the next IDE restart without additional notifications. You can enable automatic updates by clicking the Enable auto-update checkbox in the update dialog or via <em>File | Settings | Appearance &amp; Behavior | System Settings | Updates<\/em>.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Merged main menu in the main toolbar on Windows and Linux<\/h3>\n\n\n<p>For Windows and Linux users, the IDE now offers a new option to merge the main menu with the main toolbar, creating a more streamlined interface.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Easier toolbar customization in the <em>Debug<\/em> tool window<\/h3>\n\n\n<p>With so many powerful features in the debugger, you can now customize the toolbar to fit your workflow. Simply right-click next to the kebab menu in the top pane and select <em>Add to Debugger Toolbar<\/em>. A list of available actions will appear, allowing you to choose the ones that best suit your project and streamline your debugging experience.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Improved formatting for marked-up text in debugging<\/h3>\n\n\n<p>When inspecting a value that contains marked-up text, WebStorm now displays it with proper formatting instead of as a plain, lengthy string. For example, if the value is an XML input for a parser, it will appear in a structured, readable format, making it easier to analyze.<\/p>\n\n\n<h2 class=\"wp-block-heading\">GraphQL and Prisma<\/h2>\n\n\n<h3 class=\"wp-block-heading\">Improved GraphQL support in tagged templates<\/h3>\n\n\n<p>WebStorm now automatically injects GraphQL syntax highlighting and validation for <code>gql(query)<\/code>-style tagged templates. This enhancement ensures better code completion, error checking, and formatting, making it easier to work with GraphQL queries inside JavaScript and TypeScript files.<\/p>\n\n\n<h3 class=\"wp-block-heading\">Enhanced Prisma support<\/h3>\n\n\n<p>WebStorm now offers improved Prisma support, including ULID (universally unique lexicographically sortable identifier) recognition with proper syntax highlighting, validation, and autocompletion. Additionally, multi-line comments are now fully supported in Prisma schemas, making it easier to document database structures with longer explanations.<\/p>\n\n\n<p>There are lots of new improvements and enhancements to try out in this latest WebStorm release. If you\u2019d like a list of everything included in <a href=\"https:\/\/www.jetbrains.com\/webstorm\/download\" target=\"_blank\" rel=\"noopener\">WebStorm 2025.1<\/a>, please check out the <a href=\"https:\/\/youtrack.jetbrains.com\/articles\/WEB-A-233538589\/WebStorm-2025.1-251.23774.424-build-Release-Notes\" target=\"_blank\" rel=\"noopener\">release notes<\/a>. We hope you enjoy this release. As always, please share your feedback with us and report any issues you find to our <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/WEB\" target=\"_blank\" rel=\"noopener\">issue tracker<\/a>.<\/p>\n\n\n<em>The WebStorm team<\/em>\n","protected":false},"author":743,"featured_media":557977,"comment_status":"closed","ping_status":"closed","template":"","categories":[89,907],"tags":[8721],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/webstorm\/557955"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/webstorm"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/webstorm"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/743"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=557955"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/webstorm\/557955\/revisions"}],"predecessor-version":[{"id":561925,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/webstorm\/557955\/revisions\/561925"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/557977"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=557955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=557955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=557955"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=557955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}