Vue3.0中ts引入支持js问题

tsconfig.json中

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": false, //默认true
    "jsx": "preserve",
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowJs": true,// ts支持js
    "outDir": "./",// ts支持js,将输出结构重定向到目录。
    "allowSyntheticDefaultImports": true,
    "forceConsistentCasingInFileNames": true,
    "useDefineForClassFields": true,
    "sourceMap": true,
    "baseUrl": ".",
    "types": [
      "webpack-env"
    ],
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    "typeRoots":[
      "./types",
      "./node_modules/vue/types"
    ],
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.vue",
    "tests/**/*.ts",
    "tests/**/*.tsx",
    "src/**/*.js" //ts支持js
  ],
  "exclude": [
    "node_modules",
    "dist"
  ]
}

Vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false, // 关闭语法检查

/*
  // 方式一
  // 开启代理服务器:端口5000
  // 弊端1:不能配置多个代理,只能唯一
  // 弊端2:请求本地无时,才走代理服务器
  /!*devServer:{
    proxy:"http://localhost:5000"
  },*!/
  // 方式二: 官网devServer.proxy中
  // 更多的代理控制行为
  devServer: {
    proxy: {
      // 代理1:正常写法
      // 注:使用一个 path: options 成对的对象 重点
      // ‘/api’前缀:可自定义
      '/atguigu': {//匹配所有以’/atguigu‘开头的请求路径
        target: 'http://localhost:5000', // 代理目标的基础路径
        pathRewrite: {'^/atguigu':''},// 重写路径:{key'匹配所有^/atguigu : value为'空'}
        ws: true, // 用于支持websocket
        // 用于控制请求头中的host值
        changeOrigin: true // 来自于路径:ture为5000请求服务器端口一致,false默认为8080真实端口
      },
      '/demo': {
        target: 'http://localhost:5001',
        // 重写路径:{key'匹配所有^/atguigu : value为'空'}
        pathRewrite: {'^/demo':''},
        ws: true, // 用于支持websocket
        // 用于控制请求头中的host值
        changeOrigin: true // 来自于路径:false为5000请求服务器端口一致,true为8080真实端口
      },
      // 代理2:精简写法
      '/foo': {
        target: '<other_url>'
      }
    }
  }
*/

})

shims-vue.d.ts

declare module '*.vue' {
  import Vue from 'vue'
  export default Vue
  //增加ts引入js
  /*import { DefineComponent } from "vue"
  const component: DefineComponent<{}, {}, any>
  export default component*/
  declare module '@'

}

 

posted @ 2022-11-27 17:08  爵岚  阅读(2834)  评论(0编辑  收藏  举报