赞
踩
先把npm 切换成淘宝镜像
npm config set registry https://registry.npm.taobao.org
验证是否成功
npm config get registry
cnpm install typescript ts-loader --save-dev
cnpm install ts-loader typescript tslint tslint-loader tslint-config-standard --save-dev
cnpm install ignore-loader
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风格的约束
ignore-loader:忽略加载器
在构建webpack应用程序时忽略某些文件。(运行时如果报错TypeScript emitted no output for就添加此依赖)
webpack配置
vue cli 3.0创建的项目:
在vue.config.js中添加下面代码
configureWebpack: { resolve: { extensions: [".ts", ".tsx", ".js", ".json"] }, module: { rules: [ { test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules/, options: { appendTsSuffixTo: [/\.vue$/], } } ] } }
如果配置这个rules报错换成如下:(需要安装igore-loader)
module: { rules: [ { test: /\.tsx?$/, loader: 'ts-loader', exclude: /node_modules|\.d\.ts$/, options: { appendTsSuffixTo: [/\.vue$/], }, }, { test: /\.d\.ts$/, loader: 'ignore-loader', }, ], },
在根目录下新建tsconfig.json
添加如下代码:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"strictNullChecks": true,
"esModuleInterop": true,
"experimentalDecorators": true
}
}
由于 TypeScript 默认并不支持 *.vue 后缀的文件,所以在 vue 项目中引入的时候需要创建一个 vue-shim.d.ts 文件,放在src文件夹目录下(与main.js同级)
declare module "*.vue" {
import Vue from "vue";
export default Vue;
}
<script lang='ts'></script>
<template> <div>123 {{ h1 }}</div> </template> <script lang="ts"> export default { data: function () { return { h1: 'String', } }, created() { let strjs = '测试js' let strts: string = '测试ts' console.log(strts) console.log(strjs) }, } </script> <style scoped></style>
运行效果
到这就算引入成功啦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。