{"id":6992,"date":"2026-01-21T10:07:28","date_gmt":"2026-01-21T01:07:28","guid":{"rendered":"https:\/\/dandelions.co.jp\/blog\/?p=6992"},"modified":"2026-01-21T10:07:28","modified_gmt":"2026-01-21T01:07:28","slug":"setting-up-a-vue-3-development-environment-on-windows-using-cursor","status":"publish","type":"post","link":"https:\/\/dandelions.co.jp\/blog\/blog\/2026\/01\/21\/setting-up-a-vue-3-development-environment-on-windows-using-cursor\/","title":{"rendered":"Setting Up a Vue 3 Development Environment on Windows Using Cursor"},"content":{"rendered":"\n<p>As a tech blog, I\u2019d like to share what I\u2019ve been learning recently. <br>This time, I\u2019ll walk you through how I set up a Vue 3 development environment using Cursor, a code editor with built-in AI features.<\/p>\n\n\n\n<h2>Requirements<\/h2>\n\n\n\n<p>\u30fbNode.js<br>\u30fbCursor<br>\u30fbVue3<br>\u30fbVue Router<\/p>\n\n\n\n<h2>Installing Node.js<\/h2>\n\n\n\n<p>Download the installer from the <a href=\"https:\/\/nodejs.org\/ja\">official website<\/a> <br>The latest version at the time of writing is 24.12.0 (LTS) <br>Download the Windows installer<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"912\" height=\"736\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-1.png\" alt=\"\" class=\"wp-image-6993\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-1.png 912w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-1-300x242.png 300w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-1-768x620.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Follow the installation wizard. If you don\u2019t have any specific preferences, just clicking &#8216;Next&#8217; through all the steps is fine.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-2.png\" alt=\"\" class=\"wp-image-6994\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-2.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-2-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-3.png\" alt=\"\" class=\"wp-image-6995\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-3.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-3-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-4.png\" alt=\"\" class=\"wp-image-6996\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-4.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-4-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-5.png\" alt=\"\" class=\"wp-image-6997\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-5.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-5-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<p>You can basically keep clicking &#8216;Next&#8217; here as well, but if you plan to use various Node.js modules in the future, it\u2019s a good idea to check this option. <br>However, it\u2019s not necessary for this setup.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-6.png\" alt=\"\" class=\"wp-image-6998\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-6.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-6-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-7.png\" alt=\"\" class=\"wp-image-6999\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-7.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-7-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"495\" height=\"387\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-8.png\" alt=\"\" class=\"wp-image-7000\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-8.png 495w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-8-300x235.png 300w\" sizes=\"(max-width: 495px) 100vw, 495px\" \/><\/figure>\n\n\n\n<p>That\u2019s it! Node.js is now set up and ready to go.<\/p>\n\n\n\n<h2>Installing Cursor<\/h2>\n\n\n\n<p>Download the installer from the <a href=\"https:\/\/cursor.com\/ja\">official website<\/a>. <br>The latest version at the time of writing is 2.2.44. <br>If you don\u2019t have any specific preferences, you can proceed with the default settings during installation. <br>After installation, you\u2019ll be prompted to log in, so it\u2019s a good idea to create an account on the official website beforehand for a smoother setup.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"1024\" height=\"247\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-10-1024x247-1.png\" alt=\"\" class=\"wp-image-7001\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-10-1024x247-1.png 1024w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-10-1024x247-1-300x72.png 300w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-10-1024x247-1-768x185.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<h2>Adding Extensions to Cursor<\/h2>\n\n\n\n<p>Add the following extensions to Cursor<\/p>\n\n\n\n<ul><li>Japanese Language Pack for VS Code <br>\u30fbJapanese localization<\/li><li>npm <br>\u30fbSupport for npm<\/li><li>Npm Intellisense <br>\u30fbAuto-completion for npm modules in import statements<\/li><li>Vue (Official) <br>\u30fbSupport for Vue<\/li><li>Vite <br>\u30fbSupport for Vue development server<\/li><\/ul>\n\n\n\n<h2>Creating a Vue 3 Project<\/h2>\n\n\n\n<p>Go to File > Open Folder and open the location where you want to create your project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"367\" height=\"232\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-11.png\" alt=\"\" class=\"wp-image-7002\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-11.png 367w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-11-300x190.png 300w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/figure>\n\n\n\n<p>Open the terminal with [Ctrl + @]<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"1024\" height=\"614\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-12-1024x614-1.png\" alt=\"\" class=\"wp-image-7003\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-12-1024x614-1.png 1024w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-12-1024x614-1-300x180.png 300w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-12-1024x614-1-768x461.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Run the following command in the terminal to create the project<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm create vue@latest<\/code><\/pre>\n\n\n\n<p>Type &#8216;y&#8217;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"494\" height=\"171\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-13.png\" alt=\"\" class=\"wp-image-7004\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-13.png 494w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-13-300x104.png 300w\" sizes=\"(max-width: 494px) 100vw, 494px\" \/><\/figure>\n\n\n\n<p>Enter your preferred project name and package name.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"445\" height=\"212\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-15.png\" alt=\"\" class=\"wp-image-7005\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-15.png 445w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-15-300x143.png 300w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/figure>\n\n\n\n<p>Select the packages you want to add.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"836\" height=\"299\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-17.png\" alt=\"\" class=\"wp-image-7006\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-17.png 836w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-17-300x107.png 300w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-17-768x275.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<h2>Give it a try<\/h2>\n\n\n\n<ul><li>TypeScript <br><strong>\u30fbMust be added<\/strong><\/li><li>JSX Support <br>\u30fbEnables writing Vue in JSX\/TSX syntax. Add this if you prefer a React-like style. <br>\u30fbTurned off for this setup.<\/li><li>Router <br>\u30fbEssential for page navigation <br><strong>\u30fbMust be added<\/strong><\/li><li>Pinia <br>\u30fbState management library <br>\u30fbAdd if you need to manage login info, user data, or shared state<\/li><li>Vitest <br>Add if you want to automate unit testing<\/li><li>End-to-End Testing <br>\u30fbAdd if you want to automate tests that include browser interactions<\/li><li>ESLint <br>\u30fbLinting tool to check code style <br><strong>\u30fbMust be added<\/strong><\/li><li>Prettier <br>\u30fbAutomatically formats your code <br><strong>\u30fbMust be added<\/strong><\/li><\/ul>\n\n\n\n<p>You\u2019ll be asked whether to enable experimental features. Since we won\u2019t be using them this time, just press Enter to keep the default.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"924\" height=\"61\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-18.png\" alt=\"\" class=\"wp-image-7007\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-18.png 924w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-18-300x20.png 300w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-18-768x51.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>You\u2019ll be asked whether to create the project without sample code. <br>For this setup, select &#8216;No&#8217; to include the sample code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"476\" height=\"83\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-19.png\" alt=\"\" class=\"wp-image-7008\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-19.png 476w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-19-300x52.png 300w\" sizes=\"(max-width: 476px) 100vw, 476px\" \/><\/figure>\n\n\n\n<p>The project creation will begin, and once it\u2019s complete, a project folder will be generated.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"485\" height=\"349\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-20.png\" alt=\"\" class=\"wp-image-7009\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-20.png 485w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-20-300x216.png 300w\" sizes=\"(max-width: 485px) 100vw, 485px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"386\" height=\"418\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-21.png\" alt=\"\" class=\"wp-image-7010\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-21.png 386w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-21-277x300.png 277w\" sizes=\"(max-width: 386px) 100vw, 386px\" \/><\/figure>\n\n\n\n<p>Reopen the created project folder in Cursor and run the following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PS C:\\vue3\\startupVue> npm install<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"462\" height=\"189\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-23.png\" alt=\"\" class=\"wp-image-7011\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-23.png 462w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-23-300x123.png 300w\" sizes=\"(max-width: 462px) 100vw, 462px\" \/><\/figure>\n\n\n\n<p>Once the dependencies are installed, the project setup is complete.<\/p>\n\n\n\n<h2>Starting the Vue app<\/h2>\n\n\n\n<p>Run the following command to start the development server<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run dev<\/code><\/pre>\n\n\n\n<p>If the launch is successful, the following screen will be displayed<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"1024\" height=\"614\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-24-1024x614-1.png\" alt=\"\" class=\"wp-image-7012\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-24-1024x614-1.png 1024w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-24-1024x614-1-300x180.png 300w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-24-1024x614-1-768x461.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>You can stop the server by typing [q] in the console.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" width=\"618\" height=\"241\" src=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-25.png\" alt=\"\" class=\"wp-image-7013\" srcset=\"https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-25.png 618w, https:\/\/dandelions.co.jp\/blog\/wp\/wp-content\/uploads\/2026\/01\/image-25-300x117.png 300w\" sizes=\"(max-width: 618px) 100vw, 618px\" \/><\/figure>\n\n\n\n<p>That\u2019s it! We\u2019ve set up a Vue 3 development environment using Cursor. <br>If this sparked your interest, try setting it up on your own PC too!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As a tech blog, I\u2019d like to share what I\u2019ve been learning recently. This time, I\u2019ll walk you through how I set &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/dandelions.co.jp\/blog\/blog\/2026\/01\/21\/setting-up-a-vue-3-development-environment-on-windows-using-cursor\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Setting Up a Vue 3 Development Environment on Windows Using Cursor&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[8],"tags":[9],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paR9rw-1OM","_links":{"self":[{"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/posts\/6992"}],"collection":[{"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/comments?post=6992"}],"version-history":[{"count":1,"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/posts\/6992\/revisions"}],"predecessor-version":[{"id":7014,"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/posts\/6992\/revisions\/7014"}],"wp:attachment":[{"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/media?parent=6992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/categories?post=6992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dandelions.co.jp\/blog\/wp-json\/wp\/v2\/tags?post=6992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}