最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用WebStorm開(kāi)發(fā)Vue3項(xiàng)目詳細(xì)教程

 更新時(shí)間:2024年11月09日 09:15:41   作者:Pannikin  
這篇文章主要介紹了使用WebStorm開(kāi)發(fā)Vue3項(xiàng)目的相關(guān)資料,本文介紹了在WebStorm中使用Vue3、TypeScript、Sass開(kāi)發(fā)項(xiàng)目的配置過(guò)程,包括版本兼容性問(wèn)題、項(xiàng)目搭建、依賴包安裝、代碼檢查工具配置、運(yùn)行和調(diào)試等步驟,需要的朋友可以參考下

記錄一下使用WebStorm開(kāi)發(fā)Vu3項(xiàng)目時(shí)的配置

現(xiàn)在WebStorm可以個(gè)人免費(fèi)使用啦!??

基本配置

  • 打包工具:Vite
  • 前端框架:ElementPlus
  • 開(kāi)發(fā)語(yǔ)言:Vue3、TypeScript、Sass
  • 代碼檢查:ESLint、Prettier
  • IDE:WebStorm 2024.2

首先說(shuō)一下版本兼容問(wèn)題,ElementPlus>=2.8.5需要Sass>=1.79.0,但是升級(jí)了Sass后,會(huì)導(dǎo)致Element提示很多警告,猜測(cè)原因是因?yàn)镾ass在后續(xù)版本修改了一些語(yǔ)法規(guī)則,而Element沒(méi)有跟進(jìn)修改。這些警告雖然不影響代碼運(yùn)行,但是看著糟心,目前只能等待官方后續(xù)更新了。

搭建Vue3項(xiàng)目

通過(guò)Vite搭建Vue3項(xiàng)目

npm create vite@latest my-vue-app -- --template vue-ts
  • my-vue-app為項(xiàng)目文件夾名稱
  • vue-ts表示使用包含typescript的vue項(xiàng)目模板搭建

安裝后的目錄結(jié)構(gòu)

├─ index.html
├─ package.json
├─ tsconfig.json #typescript配置文件
├─ tsconfig.app.json #typescript配置文件,本項(xiàng)目的ts配置,自動(dòng)引用到tsconfig.json中
├─ tsconfig.node.json #typescript配置文件,為vite服務(wù)的ts配置,自動(dòng)引用到tsconfig.json中
├─ vite.config.ts #vite配置文件
├─ src
│  ├─ assets #靜態(tài)文件
│  ├─ components #組件
│  ├─ App.vue
│  ├─ main.ts

安裝框架和其他工具包

修改項(xiàng)目根目錄下的package.json文件,添加前端框架和其他依賴包

{
  "name": "my-vue-app",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc -b && vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "vue": "^3.5.12",
    "element-plus": "^2.8.1"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^5.1.4",
    "typescript": "~5.6.2",
    "vite": "^5.4.10",
    "vue-tsc": "^2.1.8",
    "sass": "^1.77.0",
    "unplugin-auto-import": "^0.18.3",
    "unplugin-vue-components": "^0.27.4",
    "@eslint/js": "^9.13.0",
    "@rushstack/eslint-patch": "^1.10.4",
    "eslint-plugin-prettier": "^5.2.1",
    "eslint-plugin-promise": "^6.6.0",
    "eslint-plugin-vue": "^9.29.0",
    "typescript-eslint": "^8.10.0",
    "@vue/eslint-config-prettier": "^10.0.0",
    "@vue/eslint-config-typescript": "^14.1.1"
  }
}
  • unplugin-auto-importunplugin-vue-components為自動(dòng)導(dǎo)入工具,可在編寫(xiě)代碼時(shí),可以無(wú)需import ref from 'vue'而直接使用ref,工具配置后會(huì)自動(dòng)導(dǎo)入組件。
  • 名稱中包含eslint的依賴包為ESLint規(guī)則,后續(xù)在eslint.config.js中配置。
  • 正如一開(kāi)始所說(shuō),由于ElementPlus和Sass版本過(guò)高會(huì)出現(xiàn)警告的問(wèn)題,所以目前安裝的低版本,等待官方修復(fù)問(wèn)題后,再升級(jí)版本。

運(yùn)行安裝依賴

npm install

如果安裝時(shí)間過(guò)久,或者提示網(wǎng)絡(luò)超時(shí),可以切換npm源后再重新安裝

# 切換為淘寶鏡像
npm config set registry https://registry.npmmirror.com/

配置vite:vite.config.ts

import {defineConfig, loadEnv} from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite';
import {ElementPlusResolver} from "unplugin-vue-components/resolvers";
import Components from 'unplugin-vue-components/vite';
import path from 'path';

export default defineConfig(({ mode }) => {
	// 環(huán)境變量
    const env = loadEnv(mode, process.cwd(), '');
    return {
        plugins: [
            vue(),
            AutoImport({
            	// 自動(dòng)導(dǎo)入的組件
                imports: ['vue', 'vue-router'],
                // 解析器:當(dāng)前使用了ElementPlus的解析器
                resolvers: [ElementPlusResolver()],
                // 開(kāi)啟eslint
                eslintrc: { enabled: true },
            }),
            Components({
            	// 解析器:當(dāng)前使用了ElementPlus的解析器
                resolvers: [ElementPlusResolver({ importStyle: 'sass' })],
                // 以下文件夾中的組件自動(dòng)導(dǎo)入
                dirs: ['src/components'],
            }),
        ],
        resolve: {
            alias: {
                // 設(shè)置路徑別名
                '@': path.resolve(__dirname, './src'),
            },
        },
        server: {
        	// 網(wǎng)絡(luò)請(qǐng)求代理
            proxy: {
                '/t/': {
                    target: env.VITE_SERVER,
                    changeOrigin: true,
                },
            },
        },
    };
});

運(yùn)行項(xiàng)目

npm run dev

運(yùn)行后會(huì)自動(dòng)生成文件auto-imports.d.tscomponents.d.ts,又因?yàn)锳utoImport開(kāi)啟了eslintrc,還會(huì)生成文件.eslintrc-auto-import.json

配置eslint:eslint.config.ts

目前使用的eslint9版本,配置文件與之前版本的寫(xiě)法可能不一致。

注意:WebStorm2024版本才支持eslint9版本的配置文件。

創(chuàng)建eslint配置文件eslint.config.js

import pluginJs from '@eslint/js';
import tseslint from 'typescript-eslint';
import pluginVue from 'eslint-plugin-vue';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import autoImport from './.eslintrc-auto-import.json' assert { type: 'json' };

export default [
    { files: ['**/*.{js,mjs,cjs,ts,vue}'] },
    // 導(dǎo)入auto-import插件配置(目前暫不支持eslint9)
    { files: ['**/*.{js,mjs,cjs,ts,vue}'], languageOptions: autoImport },
    pluginJs.configs.recommended,
    ...tseslint.configs.recommended,
    ...pluginVue.configs['flat/essential'],
    { files: ['**/*.vue'], languageOptions: { parserOptions: { parser: tseslint.parser } } },
    // 自定義規(guī)則
    {
        rules: {
            // 使用any類型時(shí)提示警告
            '@typescript-eslint/no-explicit-any': 'warn',
        },
    },
    eslintPluginPrettierRecommended,
];
  • 由于目前unplugin-auto-import并不支持eslint9,所以需要導(dǎo)入.eslintrc-auto-import.json文件消除錯(cuò)誤提示。
  • 一般來(lái)說(shuō)eslint-plugin-prettier的規(guī)則要放在最后,保證它的規(guī)則不會(huì)被覆蓋。
  • 如果要增加更多規(guī)則,請(qǐng)查看eslint配置文檔。

修改ts配置:tsconfig.app.json

修改ts配置,添加上一步自動(dòng)生成的.d.ts文件,添加后就不會(huì)提示Vue的導(dǎo)入錯(cuò)誤了。

# 在include中添加文件名
{
	"compilerOptions": {...}
	"include": [..., "auto-imports.d.ts", "components.d.ts"]
}

修改WebStorm設(shè)置

  • 選擇自動(dòng)ESLint配置,編輯器會(huì)自動(dòng)尋找根目錄下的.eslint.config.js文件。
  • 勾選eslint --fix會(huì)在保存文件時(shí)自動(dòng)格式化代碼。

     


    修改后重啟一下編輯器,或者重啟語(yǔ)言服務(wù)中的兩個(gè)服務(wù)。

完成后打開(kāi)App.vue文件,刪除import HelloWorld from './components/HelloWorld.vue',并沒(méi)有HelloWorld組件未導(dǎo)入的錯(cuò)誤提示,則說(shuō)明配置生效了。

配置prettier:.prettierrc.json

默認(rèn)prettier的規(guī)則可能不適合個(gè)人習(xí)慣,可以通過(guò)添加.prettierrc.json配置文件進(jìn)行修改規(guī)則

{
  "semi": true, 	// 句尾增加分號(hào)
  "tabWidth": 4,	//使用4個(gè)空格縮進(jìn)
  "singleQuote": true,	// 使用單引號(hào)
  "printWidth": 200,	// 超過(guò)200字符換行
  "arrowParens": "avoid",	// 單箭頭函數(shù)不加括號(hào)
  "bracketSameLine": true	// 對(duì)象前后增加空格
}

還有很多規(guī)則,可以查看prettier文檔。

環(huán)境變量env

創(chuàng)建文件.env、.env.development.env.production分別對(duì)應(yīng)默認(rèn)配置、開(kāi)發(fā)環(huán)境配置、生成環(huán)境配置

// .env.development
VITE_SERVER = http://dev.xxx.com
// .env.production
VITE_SERVER = http://pro.xxx.com

修改打包命令

// package.json
{
	...
	"scripts":{
		...
	    "build": "vite build --mode production",
    	"build-dev": "vite build --mode development",
    	...
	}
	...
}

更多有關(guān)環(huán)境變量的配置和使用,請(qǐng)查看vite文檔。

其他問(wèn)題

  • 為什么用了ESLint還要用Prettier,兩者分別有什么作用?
    Prettier用于格式化代碼,確??s進(jìn)、分號(hào)、引號(hào)、換行等代碼格式一致;ESLint則用于代碼語(yǔ)法檢測(cè),提示錯(cuò)誤。

總結(jié) 

到此這篇關(guān)于使用WebStorm開(kāi)發(fā)Vue3項(xiàng)目的文章就介紹到這了,更多相關(guān)WebStorm開(kāi)發(fā)Vue3項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue打包上線之后部分CSS不生效問(wèn)題的解決辦法

    Vue打包上線之后部分CSS不生效問(wèn)題的解決辦法

    在vue項(xiàng)目中開(kāi)發(fā)環(huán)境的樣式?jīng)]問(wèn)題,但是打包上線后,樣式不生效,下面這篇文章主要給大家介紹了關(guān)于Vue打包上線之后部分CSS不生效問(wèn)題的解決辦法,需要的朋友可以參考下
    2022-12-12
  • vue使用advanced-mark.js實(shí)現(xiàn)高亮文字效果

    vue使用advanced-mark.js實(shí)現(xiàn)高亮文字效果

    在日常項(xiàng)目中我們往往會(huì)有搜索高亮的需求,下面這篇文章主要介紹了vue使用advanced-mark.js實(shí)現(xiàn)高亮文字效果的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-08-08
  • vue實(shí)現(xiàn)背景圖片鋪滿整個(gè)屏幕(適配所有機(jī)型)

    vue實(shí)現(xiàn)背景圖片鋪滿整個(gè)屏幕(適配所有機(jī)型)

    在網(wǎng)頁(yè)設(shè)計(jì)中,背景全屏是一種常見(jiàn)的視覺(jué)效果,通過(guò)正確的CSS樣式設(shè)置,可以實(shí)現(xiàn)背景全屏且內(nèi)容在固定一屏大小內(nèi)完全顯示,如果內(nèi)容超出一屏,則可以通過(guò)滾動(dòng)條查看剩余內(nèi)容,這種設(shè)計(jì)可以提升用戶的瀏覽體驗(yàn),使網(wǎng)頁(yè)看起來(lái)更加整潔和專業(yè)
    2024-10-10
  • VUE搭建手機(jī)商城心得和遇到的坑

    VUE搭建手機(jī)商城心得和遇到的坑

    這篇文章主要介紹了VUE搭建手機(jī)商城心得和遇到的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • vue附件下載無(wú)法打開(kāi)的問(wèn)題及解決

    vue附件下載無(wú)法打開(kāi)的問(wèn)題及解決

    這篇文章主要介紹了vue附件下載無(wú)法打開(kāi)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue 3 中使用 Mitt 事件總線方案詳解

    Vue 3 中使用 Mitt 事件總線方案詳解

    Mitt是一個(gè)輕量級(jí)的事件庫(kù),可作為Vue3全局事件總線的替代方案,文章介紹了基本使用方法和高級(jí)用法,并對(duì)比了Mitt與Vue原生通信方式的差異,建議謹(jǐn)慎使用事件總線,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Vue+LogicFlow+Flowable實(shí)現(xiàn)工作流

    Vue+LogicFlow+Flowable實(shí)現(xiàn)工作流

    本文主要介紹了Vue+LogicFlow+Flowable實(shí)現(xiàn)工作流,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • 使用@tap.stop阻止事件繼續(xù)傳播

    使用@tap.stop阻止事件繼續(xù)傳播

    這篇文章主要介紹了使用@tap.stop阻止事件繼續(xù)傳播,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 如何提升vue.js中大型數(shù)據(jù)的性能

    如何提升vue.js中大型數(shù)據(jù)的性能

    這篇文章主要介紹了提高vue.js中大型數(shù)據(jù)的性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • vue?element-ui的el-input-number默認(rèn)值設(shè)置為空方法

    vue?element-ui的el-input-number默認(rèn)值設(shè)置為空方法

    這篇文章主要給大家介紹了關(guān)于vue?element-ui的el-input-number默認(rèn)值設(shè)置為空的相關(guān)資料,el-input-number組件是Element?UI非常常用的一個(gè)數(shù)字輸入框組件,它提供了默認(rèn)值設(shè)置的選項(xiàng),需要的朋友可以參考下
    2023-08-08

最新評(píng)論

新泰市| 高要市| 保靖县| 安化县| 永春县| 读书| 汉阴县| 新郑市| 精河县| 绥滨县| 北海市| 桦甸市| 沂源县| 贺兰县| 永定县| 舞钢市| 陆丰市| 白银市| 开化县| 五莲县| 象山县| 固镇县| 孝感市| 延安市| 旬邑县| 深泽县| 屯门区| 保山市| 合川市| 宁乡县| 巴东县| 缙云县| 甘泉县| 太康县| 桃源县| 诸城市| 石家庄市| 舟山市| 关岭| 曲沃县| 万州区|