Vue CLI3项目引入TypeScript

2019-05-20  本文已影响0人  叶小七的真命天子
yarn add ts-loader typescript   - -d
{
    "compilerOptions": {
        // 与 Vue 的浏览器支持保持一致
        "target": "es5",
        // 这可以对 `this` 上的数据属性进行更严格的推断
        "strict": true,
        // 如果使用 webpack 2+ 或 rollup,可以利用 tree-shake:
        "module": "es2015",
        "moduleResolution": "node",
        "experimentalDecorators": true,
        "sourceMap": true
    },
    "include": ["src"],
    "exclude": [
        "node_modules",
        "dist"
    ]
}
module.exports = {
chainWebpack: config=>{
  c.module
      .rule('ts-loader')
      .test(/\.tsx?$/)
      .exclude.add(fromSrc('node_modules'))
      .end()
      .use('ts-loader')
      .loader('ts-loader')
      .options({
        appendTsSuffixTo: [/\.vue$/]
      })
}
yarn add vue-class-component,vue-property-decorator
<template>
  <div>
    <h1 @click="onClick">{{message}}</h1>
  </div>
</template>

<script lang="ts">
  import Vue from 'vue'
  import Component from 'vue-class-component'
  
  @Component
  export default class MyComponent extends Vue {
    message: string = 'Hello!'
    onClick(): void {
      window.alert(this.message)
    }
  }
</script>

<style scoped lang="scss">

</style>
ERROR TS18003: No inputs were found in config file 'tsconfig.json'. Specified 'include' paths were '["src"]' and 'exclude' paths were '["node_modules","dist"]'.

解觉方式是在src中随便新建一个ts文件即可。

上一篇下一篇

猜你喜欢

热点阅读