vue-cli早期版本支持搭建时直接引入typescript,不需要自己配置
3.4.1版本ui搭建时没有自动集成typescript,所以记录下自己搭建的坑

总共三步

第一步:vue.config.js配置loader,涉及两个依赖ts-loader,typescript

chainWebpack: config => {config.module.rule('tsx').use('ts-loader').loader('ts-loader').tap(options => {return Object.assign(options || {}, { allowTsInNodeModules: true });})
}
复制代码

第二步:cli3不能手动修改entry,需要安装一个插件@vue/cli-plugin-typescript

yarn add @vue/cli-plugin-typescript
复制代码

第三步:根目录tsconfig.json配置

{"compilerOptions": {"target": "esnext","module": "esnext","strict": true,"jsx": "preserve","importHelpers": true,"moduleResolution": "node","experimentalDecorators": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"sourceMap": true,"baseUrl": ".",// "types": [//   "webpack-env"// ],"paths": {"@/*": ["src/*"]},"lib": ["esnext","dom","dom.iterable","scripthost"]},"include": ["./src/**/*"],"exclude": ["./node_modules/*","./public/*"]
}
复制代码

好了,配置文件已经搞定,可以开始写ts了

<script lang="ts">
import HelloWorld from './components/HelloWorld.vue';
import { Component, Prop, Vue, Watch } from 'vue-property-decorator';@Component<Vue>({components: {HelloWorld}
})
export default class App extends Vue {public name:string = 'app';
}
</script>
复制代码

其他工具

<template lang="pug">
<style scoped lang="scss">
yarn add pug
yarn add pug-plain-loader
yarn add sass-loader
yarn add node-sass
复制代码

配置sass变量及postcss pxtorem

css: {modules: true,loaderOptions: {sass: {data: `@import "@/variables.scss";`},postcss: {plugins: [require('postcss-pxtorem')({rootValue: 75,propList: ['*', '!font-size'],}),]}}
}
复制代码

如何打包多页应用

熟悉webpack的同学知道多页打包主要是声明多个entry,vue-cli3配置有点不一样的是,需要指定pages

let path = require('path')
let glob = require('glob')function getEntry(globPath) {let pages = {};glob.sync(globPath).forEach(function(entry) {let basename = path.basename(entry, path.extname(entry));pages[basename] = {entry: entry,template: 'public/index.html',filename: `${basename}.html`,chunks: [basename]}});return pages;
}
// vue.config.js下面export增加pages属性
pages: getEntry('./src/pages/*.ts'),
复制代码

上面代码将会产出

pages: {login: {entry: './src/pages/login.ts',template: 'public/index.html',filename: 'login.html',chunks: ['login']},main: {entry: './src/pages/main.ts',template: 'public/index.html',filename: 'main.html',chunks: ['main']}
}
复制代码

打包之后的文件目录如下:

多页打包的另一个问题是:本地服务器以哪个页面为入口?
// 所以需要做个配置
devServer: {index: 'main.html'
}
复制代码

其他配置项可以参考vue-cli3官网
cli.vuejs.org/zh/guide/

vue-cli3集成typescript,sass variables,多页打包相关推荐

  1. vue cli3 配置sass全局变量设置不生效,sass混合器文件全局引入

    vue cli3 配置sass全局变量的问题 首先确保依赖安装完整 找到vue.config.js加入配置信息 首先确保依赖安装完整 1.node-sass 2.sass-loader 3.style ...

  2. Vue.js + Vuex + TypeScript 实战项目开发与项目优化

    技术栈: Vue.js + Vuex + TypeScript Todo List: 使用Vue CLI初始化项目 调整初始目录结构 删除初始化的默认文件(对于我们项目是多余的组件components ...

  3. Vue Cli3安装配置步骤

    一.准备工作: mac系统的前面加上sudo获取管理员权限 安装node.js(自带了软件包管理工具npm) 安装webpack,命令: sudo npm install webpack -g //- ...

  4. 可视化构建工具探索之Vue Cli3.0 阿里飞冰

    Vue Cli3.0可视化构建工具--Vue UI 一.安装环境 安装了最新的Vue CLI.打开Terminal,输入: npm install -g @vue/cli or yarn global ...

  5. RxJS实践,Vue如何集成RxJS

    一. 本文章不会对RxJS的原理进行讲解,仅讨论如何在vue中对RxJS进行集成 1.30天精通 RxJS 这是一个台湾开发者编写的关于RxJS的教程,教程涉及到原理解析.简易实现,以及常用opera ...

  6. Vue CLI3 基本使用配置;

    Vue CLI3 开始 安装: npm install -g @vue/cli # OR yarn global add @vue/cli 创建一个项目:  vue create my-project ...

  7. Naive UI - 火热出炉!基于 Vue 3.0/TypeScript 的免费开源前端 UI 组件库

    非大厂 KPI 项目!开源三天就收获 800 Star,还获得 Vue 作者尤雨溪的官方推荐. 关于 Naive UI Naive UI 是一款基于当前比较新的 Vue 3.0/TypeScript ...

  8. vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)

    Vue.extend or vue-class-component 使用 TypeScript 写 Vue 组件时,有两种推荐形式: Vue.extend():使用基础 Vue 构造器,创建一个&qu ...

  9. Vue CLI3.0 中使用jQuery 和 Bootstrap

    Vue 中使用 jQuery 和 Bootstrap 不是特别符合 Vue 原生的写法,但是有时候又要用,所以放上我的引入设置,供大家参考. 在 Vue CLI2.0 中引入 jQuery 和 Boo ...

最新文章

  1. TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?
  2. Numpy中矩阵运算
  3. Linux7-常用文件管理命令及系统变量基础
  4. char几个字节java_java中的char占几个字节实例分析
  5. 构件图(Component Diagram)—UML图(八)
  6. 为使节构建控制平面的指南第3部分-特定于域的配置API
  7. Spring MVC:表单处理卷。 4 –单选按钮
  8. Jenkins连接TFS出现错误:“jenkins com.microsoft.tfs.core.exceptions.TECoreException”的问题收集...
  9. 新手必看!单片机掉电检测与数据掉电保存方案
  10. pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)
  11. Linux中的文件查找技巧
  12. nginx反向代理转发apache配置 之 cookie去哪儿了?
  13. activity 工作流_智能风控决策引擎系统可落地实现方案(二)决策流实现
  14. html怎么防止扒站点,扒站工具-扒取站点js css的工具
  15. linuxprobe-脚本编写,循环语句,重定向
  16. C语言:爱因斯坦的数学题
  17. Arduino制作俄罗斯方块小游戏(三)程序源码
  18. 世间男女各自成长天涯咫尺
  19. js数组遍历结果错误
  20. android nfc驱动,Android NFC 简单梳理

热门文章

  1. Ubuntu局域网下利用client联网
  2. 十万浙企上云 阿里云崛起的最大征候?
  3. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
  4. tpopela/vips_java
  5. Hibernate 事务总结
  6. oracle管道化表函数
  7. window.event.srcElement
  8. [ZJOI2011]细胞——斐波那契数列+矩阵加速+dp
  9. 注册博客第一天,有些激动
  10. 餐巾计划问题 线性规划与网络流24题之10 费用流