安裝ts依賴
添加ts配置
配置webpack
改造.vue
改造Vue-router
安裝ts依賴
npm install ts-loader typescript --save-dev
npm vue-class-component --save
- ts-loader: typescript for webpack, 讓webpack識(shí)別.ts,.tsx文件;
- typescript: intalling for using typescript;
- vue-class-component: Typescript decorator for class-style Vue components
添加ts配置
在項(xiàng)目根目錄添加tsconfig.json配置文件氯析,來(lái)指定ts編譯的一些參數(shù)信息,ts給出其定義文件聘殖。
{
"compilerOptions": {
"lib": ["dom", "es5", "es2015", "es7", "es2015.promise"],
"target": "es5",
// "module": "es2015",
"module": "esnext",
"moduleResolution": "node",
"sourceMap": true,
"experimentalDecorators": true,
},
"include": [
"src/**/*.ts",
"src/**/*.vue"
],
"exclude": [
"node_modules",
"./dist",
"./static"
]
}
include: 編譯時(shí)所包含的文件
exclude: 編譯時(shí)所排除的文件
compilerOptions: 指定typesctipt編譯器如何編譯.ts文件
- module: 指定模塊代碼的生成方式:'none', 'commonjs', 'amd', 'system', 'umd', 'es2015' or 'esnext'嚼贡。
vue-router懶加載使用到了動(dòng)態(tài)加載模塊待锈,為es6以后版本的特性(TODO:查明是哪個(gè)版本),所以本配置為:esnext; - experimentalDecorators: Enables experimental support for ES7 decorators。我們上文用了typescript decorator,所以本配置設(shè)置為:true;
- target: 編譯后ECMAScript的目標(biāo)版本,與vue的瀏覽器支持保持一致;
webpack配置
找到webpack.base.conf.js,更改其中的配置。
entry配置
將入口文件改為'./src/main.ts',同時(shí)將main.js的擴(kuò)展名改為.ts
entry: {
app: './src/main.ts'
},
resolve.extension配置
在resolve.extensions數(shù)組中添加.ts浴讯,從而在引入ts文件時(shí)可以不寫.ts后綴名
resolve: {
extensions: ['.ts','.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
}
},