vite.config.ts配置

配置路径处理模块

安装ts的类型声明文件

yarn add @types/node -D

通过配置alias来定义路径的别名

resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
'@coms': path.resolve(__dirname, 'src/components')
}
}

配置自动在浏览器打开

server: {
open: true
}

配置scss全局变量

安装依赖

npm install node-sass sass-loader sass -D
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@/assets/scss/_theme.scss";`
}
}
}

 vite.config.ts中虽然不对报错但是process.env参数中没有.env配置文件中的参数

配置按需加载

import styleImport from 'vite-plugin-style-import'
plugins: [
vue(),
styleImport({
libs: [{
libraryName: 'vant',
esModule: true,
resolveStyle: (name) => {
return `vant/es/${name}/style/css`;
},
}]
})
]

完整配置文件如下

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import styleImport from 'vite-plugin-style-import'
import importToCDN, { autoComplete } from 'vite-plugin-cdn-import'
// 路径处理模块
import path from 'path' // https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
// styleImport({
// libs: [{
// libraryName: 'vant',
// esModule: true,
// resolveStyle: (name) => {
// return `vant/es/${name}/style/css`;
// },
// }]
// }),
importToCDN({
modules: [
autoComplete('vue'),
autoComplete('axios'),
autoComplete('lodash'),
{
name:'vue',
var:'Vue',
path:'https://cdn.jsdelivr.net/npm/vue@next'
},
{
name:'vuex',
var:'Vuex',
path:'https://cdn.jsdelivr.net/npm/vuex@4.0.2/dist/vuex.global.prod.js'
},
{
name:'vue-router',
var:'VueRouter',
path:'https://cdn.jsdelivr.net/npm/vue-router@4.0.10/dist/vue-router.global.prod.js'
},
{
name:'vant',
var:'vant',
css: 'https://cdn.jsdelivr.net/npm/vant@next/lib/index.css',
path:'https://cdn.jsdelivr.net/npm/vant@next/lib/vant.min.js'
}
]
})
],
resolve: {
// 定义别名
alias: {
'@': path.resolve(__dirname, 'src'),
'@components': path.resolve(__dirname, 'src/components')
}
},
css: {
preprocessorOptions: {
scss: {
charset: false,
additionalData: `@import "@/assets/scss/_theme.scss";`
},
less: {
javascriptEnabled: true
}
}
},
build: {
target: 'modules',
outDir: 'dist', // 指定输出路径
assetsDir: 'static', // 指定生成静态资源的存放路径
minify: 'terser', // 混淆器,terser构建后文件体积更小
sourcemap: false,
terserOptions: {
compress: {
drop_console: true, // 生产环境移除console
drop_debugger: true // 生产环境移除debugger
}
},
rollupOptions: {
treeshake: false,
output: {
manualChunks (id) {
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString()
}
}
}
}
},
server: {
open: true, // 是否在浏览器打开
port: 8088, // 端口号
host: 'local.xxx.com'
},
// 引入第三方配置
optimizeDeps: {
include: []
}
})

vue3.0+vite+ts项目搭建--vite.config.ts配置(三)的更多相关文章

  1. vue3.0+vite+ts项目搭建--基础配置(二)

    集成vue-router 使用yarn yarn add vue-router@next --save 安装完成之后在src目录下创建文件夹router/index.ts,创建完成之后需要在Vue-R ...

  2. vue3.0+vite+ts项目搭建(报错处理)

    报错一 warning package.json: No license field$ vue-tsc --noEmit && vite build 解决方案,添加这两行,只添加一个是 ...

  3. vue3.0+vite+ts项目搭建-分环境打包(四)

    分环境打包配置 新建.env.dev(或者.env) VITE_NODE_ENV = 'dev' VITE_HOST = 'http://local.host.com' 执行yarn dev ,控制台 ...

  4. vue3.0+vite+ts项目搭建--初始化项目(一)

    vite 初始化项目 使用npm npm init vite@latest 使用yarn yarn create vite 使用pnpm pnpx create-vite 根据提示输入项目名称,选择v ...

  5. vue3.0脚手架 创建项目

    1.下载node最新稳定版本,并且安装 2.安装好之后,在cmd或者terminal下, 使用npm -v 查看当前npm版本,验证是否安装成功 3.安装成功后,运行 npm i -g @vue/cl ...

  6. vue2.0 安装及项目搭建(一)

    基本环境安装 1.安装node:从node.js官网下载并安装node.测试:win+R(打开命令行)-------输入cmd-------敲入node -v.如果出现相应版本号,即安装成功: 2.测 ...

  7. spring5.0源码项目搭建

    一.准备相应环境以及下载spring项目 Ps:此处只讲解安装gradle 1.JDK安装 2.Idea安装 3.gradle安装 Gradle下载路径:https://services.gradle ...

  8. 企业应用架构研究系列二十七:Vue3.0 之环境的搭建与Vue Antd Admin探索

    开发前端需要准备一些开发工具,这些工具怎么安装就不详细描写了,度娘一些很多很多.主要把核心的开发工具列表一些,这些资源也是非常容易找到和安装的. Node 安装:https://nodejs.org/ ...

  9. vue3.0+vite+ts项目搭建-postcss-pxtorem 实现移动自适应(五)

    这里不考虑大屏,所以不做amfe-flexible的配置 首先是安装依赖 yarn add postcss-loader postcss-pxtorem -D yarn add autoprefixe ...

随机推荐

  1. IM即时通讯设计 高并发聊天服务:服务器 + qt客户端(附源码)

    来源:微信公众号「编程学习基地」 目录 IM即时通信程序设计 IM即时通讯 设计一款高并发聊天服务需要注意什么 如何设计可靠的消息处理服务 什么是粘包 什么是半包 解决粘包和半包 IM通信协议 应用层 ...

  2. 分组依据(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 [视图]选项卡下,[筛选器]楼下,住着个[分组依据]. 这个功能,说白了,就是指定个"组",把同一组的 ...

  3. MVC中的打印功能

    HTML页面: @{ Layout = "~/Views/Shared/_IframeLayout.cshtml";}@Scripts.Render(ViewBag.ScriptP ...

  4. 辅助函数和高阶函数 map、filter、reduce

    辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测):    push()    pop()    shift()    unshift()  ...

  5. c++之面试题(1)

    题目 有十瓶药,每瓶里都装有100片药,其中有八瓶里的药每片重10克,另有两瓶里的药每片重9克.用一个蛮精确的小秤,只称一次,如何找出份量较轻的那两个药瓶? 解法 1.分别给10个药瓶按照斐波那契数列 ...

  6. 【LeetCode】323. Number of Connected Components in an Undirected Graph 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 并查集 日期 题目地址:https://leetcod ...

  7. 【九度OJ】题目1195:最长&最短文本 解题报告

    [九度OJ]题目1195:最长&最短文本 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1195 题目描述: 输入多行字符串, ...

  8. Docker 与 K8S学习笔记(九)—— 容器间通信

    容器之间可通过IP.Docker DNS Server或joined三种方式进行通信,今天我们来详细学习一下. 一.IP通信 IP通信很简单,前一篇中已经有所涉及了,只要容器使用相同网络,那么就可以使 ...

  9. Java中PO、DO、DTO、 VO、 BO、POJO 、DAO、TO的概念

    1.  PO(persistant object) 持久对象 在 O/R 映射的时候出现的概念,如果没有 O/R 映射,没有这个概念存在了. 通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的 ...

  10. Laravel 使用 maatwebsite/Excel 3.1 实现导入导出的简单方法

    官方文档 https://docs.laravel-excel.com/3.1/getting-started git地址 https://github.com/maatwebsite/Laravel ...