@vue/cli 搭建項目 vue+ts

最近接手了一個新的項目喘批,@vue/cli vue+ts項目看政,總結(jié)下經(jīng)驗航罗。搭建開發(fā)環(huán)境爬舰。
主要參考官方文檔们陆。https://cli.vuejs.org/zh/guide/installation.html

安裝@vue/cli腳手架

參考官方文檔

// 我這邊直接裝當前最新的 @vue/cli 4.3.1
npm install -g @vue/cli
OR
yarn global add @vue/cli

創(chuàng)建項目

參考官方文檔

vue create hello-world // 創(chuàng)建項目

// 選擇自定義配置
  default (babel, eslint)
> Manually select features

// 結(jié)合當前環(huán)境選擇自己需要的配置
 (*) Babel
 (*) TypeScript
 ( ) Progressive Web App (PWA) Support
 (*) Router
 (*) Vuex
 (*) CSS Pre-processors
>(*) Linter / Formatter
 ( ) Unit Testing
 ( ) E2E Testing

// 選擇自己的配置(一路 Y 就行)
? Use class-style component syntax? Yes
? Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? Yes
? Use history mode for router? (Requires proper server setup for index fallback in production) Yes
// css 選自己熟悉的預編譯語言
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Less
// lint 自選
? Pick a linter / formatter config: Prettier
// lint觸發(fā)時機,建議兩個都選
? Pick additional lint features:
 (*) Lint on save
>(*) Lint and fix on commit
// 最好選擇在單獨文件添加配置情屹,在package.json中css編譯會出問題
? Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)
> In dedicated config files
  In package.json
// 可以保存一下自己的默認配置坪仇。以后可以直接使用
? Save this as a preset for future projects? (y/N) y

項目結(jié)構(gòu)

// 生成的項目結(jié)構(gòu),然后在項目的根目錄新加兩個文件 vue.config.js和.env.uat
hello-word
|--public/
|--src
    |--assets/
    |--components/
    |--router/
    |--store/
    |--views/
    |--App.vue
    |--main.ts
    |--shims-tsx.d.ts
    |--shims-vue.d.ts
|--browserslistrc
|--.env.uat // 添加環(huán)境配置文件
|--eslintrc.js
|--gitignore
|--babel.config.js
|--package.json
|--package-lock.json
|--README.md
|--tsconfig.json
|--vue.config.js // 添加配置文件垃你,本地代理椅文、打包路徑,webpack相關等

vue.config.js具體配置參考官方文檔

vue.config.js是一個可選的配置文件惜颇,如果項目的 (和 package.json 同級的) 根目錄中存在這個文件皆刺,那么它會被 @vue/cli-service 自動加載

// vue.config.js

module.exports = {
    publicPath: process.env.VUE_APP_PUBLIC_PATH,
    devServer: {
        port: 8080,
        proxy: {
            '/api': {
                target: 'target ip port',
                changeOrigin: true,
                ws: true,
                pathRewrite: {
                    '^/api': '',
                }
            }
        }
    }
}


.env文件配置

.env.[uat]文件用來指定環(huán)境變量,默認情況下凌摄,一個 Vue CLI 項目有三個模式:development羡蛾,production,test
development 模式用于 vue-cli-service serve
production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e
test 模式用于 vue-cli-service test:unit

// .env.[uat]

NODE_ENV=production  // 我們配置環(huán)境變量以打出不同的包锨亏,需要在production模式下
VUE_APP_PUBLIC_PATH=/demo/
VUE_APP_ROOT_PATH=/api

關于ts的配置

tsconfig.js

詳細配置可以查看官方文檔痴怨,這里只說項目中長用的。

 // 新建項目后生成的tsconfig.json文件器予,然后根據(jù)我們自己的項目需要來進行修改浪藻、添加、刪除劣摇。
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "typeRoots": [
        "src/types"
    ],
    "types": [
      "webpack-env"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末珠移,一起剝皮案震驚了整個濱河市弓乙,隨后出現(xiàn)的幾起案子末融,更是在濱河造成了極大的恐慌钧惧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勾习,死亡現(xiàn)場離奇詭異浓瞪,居然都是意外死亡,警方通過查閱死者的電腦和手機巧婶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門乾颁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人艺栈,你說我怎么就攤上這事英岭。” “怎么了湿右?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵诅妹,是天一觀的道長。 經(jīng)常有香客問我毅人,道長吭狡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任丈莺,我火速辦了婚禮划煮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缔俄。我一直安慰自己弛秋,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布牵现。 她就那樣靜靜地躺著铐懊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞎疼。 梳的紋絲不亂的頭發(fā)上科乎,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音贼急,去河邊找鬼茅茂。 笑死,一個胖子當著我的面吹牛太抓,可吹牛的內(nèi)容都是我干的空闲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼走敌,長吁一口氣:“原來是場噩夢啊……” “哼碴倾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤跌榔,失蹤者是張志新(化名)和其女友劉穎异雁,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僧须,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡纲刀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了担平。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片示绊。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖暂论,靈堂內(nèi)的尸體忽然破棺而出面褐,到底是詐尸還是另有隱情,我是刑警寧澤取胎,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布盆耽,位于F島的核電站,受9級特大地震影響扼菠,放射性物質(zhì)發(fā)生泄漏摄杂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一循榆、第九天 我趴在偏房一處隱蔽的房頂上張望析恢。 院中可真熱鬧,春花似錦秧饮、人聲如沸映挂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柑船。三九已至,卻和暖如春泼各,著一層夾襖步出監(jiān)牢的瞬間鞍时,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工扣蜻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逆巍,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓莽使,卻偏偏與公主長得像锐极,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芳肌,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359