vue-cli3集成typescript,sass variables,多页打包
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,多页打包相关推荐
- vue cli3 配置sass全局变量设置不生效,sass混合器文件全局引入
vue cli3 配置sass全局变量的问题 首先确保依赖安装完整 找到vue.config.js加入配置信息 首先确保依赖安装完整 1.node-sass 2.sass-loader 3.style ...
- Vue.js + Vuex + TypeScript 实战项目开发与项目优化
技术栈: Vue.js + Vuex + TypeScript Todo List: 使用Vue CLI初始化项目 调整初始目录结构 删除初始化的默认文件(对于我们项目是多余的组件components ...
- Vue Cli3安装配置步骤
一.准备工作: mac系统的前面加上sudo获取管理员权限 安装node.js(自带了软件包管理工具npm) 安装webpack,命令: sudo npm install webpack -g //- ...
- 可视化构建工具探索之Vue Cli3.0 阿里飞冰
Vue Cli3.0可视化构建工具--Vue UI 一.安装环境 安装了最新的Vue CLI.打开Terminal,输入: npm install -g @vue/cli or yarn global ...
- RxJS实践,Vue如何集成RxJS
一. 本文章不会对RxJS的原理进行讲解,仅讨论如何在vue中对RxJS进行集成 1.30天精通 RxJS 这是一个台湾开发者编写的关于RxJS的教程,教程涉及到原理解析.简易实现,以及常用opera ...
- Vue CLI3 基本使用配置;
Vue CLI3 开始 安装: npm install -g @vue/cli # OR yarn global add @vue/cli 创建一个项目: vue create my-project ...
- Naive UI - 火热出炉!基于 Vue 3.0/TypeScript 的免费开源前端 UI 组件库
非大厂 KPI 项目!开源三天就收获 800 Star,还获得 Vue 作者尤雨溪的官方推荐. 关于 Naive UI Naive UI 是一款基于当前比较新的 Vue 3.0/TypeScript ...
- vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
Vue.extend or vue-class-component 使用 TypeScript 写 Vue 组件时,有两种推荐形式: Vue.extend():使用基础 Vue 构造器,创建一个&qu ...
- Vue CLI3.0 中使用jQuery 和 Bootstrap
Vue 中使用 jQuery 和 Bootstrap 不是特别符合 Vue 原生的写法,但是有时候又要用,所以放上我的引入设置,供大家参考. 在 Vue CLI2.0 中引入 jQuery 和 Boo ...
最新文章
- TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?
- Numpy中矩阵运算
- Linux7-常用文件管理命令及系统变量基础
- char几个字节java_java中的char占几个字节实例分析
- 构件图(Component Diagram)—UML图(八)
- 为使节构建控制平面的指南第3部分-特定于域的配置API
- Spring MVC:表单处理卷。 4 –单选按钮
- Jenkins连接TFS出现错误:“jenkins com.microsoft.tfs.core.exceptions.TECoreException”的问题收集...
- 新手必看!单片机掉电检测与数据掉电保存方案
- pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)
- Linux中的文件查找技巧
- nginx反向代理转发apache配置 之 cookie去哪儿了?
- activity 工作流_智能风控决策引擎系统可落地实现方案(二)决策流实现
- html怎么防止扒站点,扒站工具-扒取站点js css的工具
- linuxprobe-脚本编写,循环语句,重定向
- C语言:爱因斯坦的数学题
- Arduino制作俄罗斯方块小游戏(三)程序源码
- 世间男女各自成长天涯咫尺
- js数组遍历结果错误
- android nfc驱动,Android NFC 简单梳理
热门文章
- Ubuntu局域网下利用client联网
- 十万浙企上云 阿里云崛起的最大征候?
- bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
- tpopela/vips_java
- Hibernate 事务总结
- oracle管道化表函数
- window.event.srcElement
- [ZJOI2011]细胞——斐波那契数列+矩阵加速+dp
- 注册博客第一天,有些激动
- 餐巾计划问题 线性规划与网络流24题之10 费用流