vue中使用ts配置的具體步驟

通過前端各個框架的發展,例如vue3.0,react和angular等框架的源碼都是用ts(TypeScripe)進行編寫的,因此我感覺未來的中大型項目的發展趨勢也離不開ts。

因此我根據一些入門教程利用vue結合ts編寫瞭文檔,適合入門配置vue+ts項目。

vue老項目引入TypeScripe

npm install vue-class-component vue-property-decorator --save
npm install ts-loader typescript tslint tslint-loader tslint-config-standard --save-dev
  • vue-class-component:擴展vue支持typescript,將原有的vue語法通過聲明的方式來支持ts
  • vue-property-decorator:基於vue-class-component擴展更多裝飾器
  • ts-loader:讓webpack能夠識別ts文件
  • tslint-loader:tslint用來約束文件編碼,可裝可不裝,建議最好安裝下,有利於代碼規范
  • tslint-config-standard: tslint 配置 standard風格的約束,這個也是用來規范ts代碼風格的

註:這種方式安裝ts是為瞭將原有的vue項目中Js語法修改為Ts,詳細步驟參考https://www.jb51.net/article/230703.htm此文中對於vue.config.js或者低版本的webpack.base.conf中配置支持ts語法展示不太完全,因此我修改如下:

// 對於文件插件配置,需要寫在configureWebpack這個對象中。
module.exports = {
    configureWebpack: {
        resolve: { extensions: [".ts", ".tsx", ".js", ".json"] },
        module: {
            rules: [
                {
                    test: /\.ts$/,
                    exclude: /node_modules/,
                    enforce: 'pre',
                    loader: 'tslint-loader'
                },
                {
                    test: /\.tsx?$/,
                    loader: 'ts-loader',
                    exclude: /node_modules/,
                    options: {
                        appendTsSuffixTo: [/\.vue$/],
                    }
                }
            ]
        }
    }
}

從零開始創建vue+TypeScripe項目

這種方式比較簡單,隻要在用命令vue create app-name創建項目時選擇自定義就可以創建,如下步驟:

第二步選中上面幾種就行,在終端中利用空格鍵進行選中,選中之後回車,選擇項含義如下:

 (*) Babel   //ES6轉ES5
 (*) TypeScript   //使用ts
 ( ) Progressive Web App (PWA) Support   //漸進式Web應用
 (*) Router  //路由
 (*) Vuex  //狀態管理
 (*) CSS Pre-processors  //CSS預處理
 (*) Linter / Formatter   //規范類型
 ( ) Unit Testing  //測試
 ( ) E2E Testing  //測試

下一步的配置細節如下:

Use class-style component syntax? (Y/n)   是否使用class風格的組件語法   輸入Y回車
Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, trans
piling JSX)? (Y/n)   是否使用Babel和TypeScript(現代模式、自動檢測多邊形填充、trans所需(JSX) 輸入Y回車
Use history mode for router? (Requires proper server setup for index fallback in product
ion) (Y/n)    是否使用history路由模式  輸入N回車
Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default)  選擇預處理器模式 我常選擇Sass/SCSS (with node-sass)
Pick a linter / formatter config: (Use arrow keys):選擇語法檢測規范  一般默認第一個ESLint with error prevention only, 但是使用ts可以選擇TSLint
Pick additional lint features: (Press to select, to toggle all, to invert selection)   選擇保存時檢查 / 提交時檢查  一般開發時選擇第一個保存時檢查
Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? (Use arrow keys)   選擇配置信息存放位置,單獨存放或者並入package.json  一般也是默認選擇第一個,插件配置單獨存放在一個文件
Save this as a preset for future projects? (y/N)   是否保存為預設,這樣下次創建項目就不用重新選擇  輸入N回車

以上選項完成後項目就搭建成功瞭,項目目錄如下:

vue.config.js這個文件需要自己創建,放在項目根目錄下即可

vue3加ts的配置與基本語法格式

 

  • class-style 是vue中使用瞭ts的class-style的風格,也可以不加
  • Babel alongside TypeScript是使用Babel做轉義, 與TypeScript一起用於自動檢測
  • history是路由是否為哈希模式,這裡選否,哈希模式路徑要加#

  

現在是選擇代碼風格檢查和格式化的配置

  • ESLint with error prevention only 指僅用於錯誤預防
  • ESLint + Airbnb config 指ESLint 和Airbnb代碼規范
  • ESLint + Standard config 指ESLint 和Standard代碼規范
  • ESLint + Prettier 指ESLint 和Prettier代碼規范

這裡先選默認ESLint with error prevention only

1是嚴格模式,代碼格式不規范也會報錯

2是除瞭語法錯誤外不會提示 

詢問項目的配置文件存放在哪兒(1是獨立文件,2是在package.json)這裡選擇獨立的文件,選擇2在後續配置postcs適配時存在問題。 

 這一步是, 是否保存,選是的話會記住這次的配置

 接下來 npm run serve 啟動項目就ok瞭

下面是我寫的一個小demo

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。 

推薦閱讀: