广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vite多页面配置项目实战
  • 153
分享到

vite多页面配置项目实战

2024-04-02 19:04:59 153人浏览 八月长安
摘要

目录目录结构多页面使用时,vite配置项中注意点vite.config.js 配置,仅供参考访问总结最近有多页面项目需要重构,就想试试使用vite,但是网上很多方法不太全面踩了不少的

最近有多页面项目需要重构,就想试试使用vite,但是网上很多方法不太全面踩了不少的坑,网上的多页面配置方案也不少,我只给出了我成功配置并在使用的方案

目录结构

{
    dist: // 存放打包后的文件,
    node_modules: ,
    src: {
        assets: // 一些静态文件,
        components: // 公用组件,
        index: { // 页面1
            index.html,
            main.js,
            App.Vue,
            ...
        },
        page: { // 页面2
            index.html,
            main.js,
            App.vue,
            ...
        },
        ...
        index.html // 用于页面初始进入时重定向
    },
    package.JSON: ,
    vite.config.js: // 配置文件
}

Tips:在src中放一个index.html是为了编译或打包后,输入localhost:3000/能够直接跳转到需要展示的页面,而不是出现文件目录或空白页面,对应代码为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vite多页面</title>
</head>
<body>
<script>
  window.location.href = 'index/index.html' // 需要重定向的页面
</script>
</body>
</html>

多页面使用时,vite配置项中注意点

  1. 修改root参数为多页面的根目录:./src/,根据不同目录结构而修改
  2. 配置base参数为/,不然打包后js文件的访问路径会出问题
  3. 将build.outDir原输入路径dist改为../dist,根据root参数配置层级不同而对应修改
  4. rollupOptions.input中配置多个页面的输入,以下为我使用的配置项
{
    admin: path.resolve(__dirname, 'src/index.html'), // 用于页面重定向
    index: path.resolve(__dirname, 'src/index/index.html'), // 页面一
    page: path.resolve(__dirname, 'src/page/index.html'), // 页面二
}

vite.config.js 配置,仅供参考

直接上我的配置,东西有点多,仅供参考

import {
  defineConfig
} from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
export default defineConfig({
  // 服务
  server: {
    // 服务器主机名
    host: '0.0.0.0',
    // 端口号
    port: 3000,
    // 设为 true 时若端口已被占用则会直接退出,
    // 而不是尝试下移一格端口
    strictPort: false,
    // Http.createServer() 配置项
    // https: '',
    proxy: {
      '/api': {
        target: 'http://...............',
        changeOrigin: true,
        rewrite: (path) => {
          return path.replace(/^\/api/, '')
        }
      }
    },

    // 开发服务器配置 CORS
    // boolean | CorsOptions
    cors: {},
    // 设置为 true 强制使依赖构建
    // force: true,
    // 禁用或配置HMR连接
    hmr: {},
    // 传递给 chokidar 的文件系统监视器选项
    watch: {}
  },

  // 项目根目录
  // root: process.cwd(),
  root: './src/',
  // 项目部署的基础路径
  base: '/',
  // 环境配置
  mode: 'development',
  // 全局变量替换 Record<string, string>
  define: {},
  // 插件
  plugins: [vue()],
  // 静态资源服务文件夹
  publicDir: 'public',

  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'),
      'components': path.resolve(__dirname, 'src/components')
    },
    dedupe: [],
    // 情景导出package.json 配置中的 exports 字段
    conditions: [],
    // 解析package.json 中的字段
    mainFields: ['module', 'jsnext:main', 'jsnext'],
    // 导入时想要省略的扩展名列表
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
  },

  CSS: {
    // 配置css modules 的行为, 选项被传递给postcss-modules
    modules: {},
    // PostCSS 配置(格式同postcss.config.js)
    // postcss-load-config 的插件配置
    postcss: {},
    // 指定传递给 CSS 预处理器的选项
    preprocessorOptions: {
    }
  },

  json: {
    // 是否支持从 .json 文件中进行按名导入
    namedExports: true,
    // 若设置为 true, 导入的 JSON 会被转换为 export default JSON.parse("...") 会比转译成对象字面量性能更好
    // 尤其是当 JSON 文件较大时
    // 开启此项, 则会禁用按名导入
    stringify: false
  },

  // 继承自 esbuild 转换选项, 最常见的用例是自定义 JSX
  esbuild: {
    jsxFactory: 'h',
    jsxFragment: 'Fragment',
    jsxInject: `import React from 'react'`
  },

  // 静态资源处理   字符串 || 正则表达式
  assetsInclude: '',
  // 调整控制台输出的级别 'info' | 'warn' | 'error' | 'silent'
  logLevel: 'info',
  // 设为 false 可以避免 Vite 清屏而错过在终端中打印某些关键信息
  clearScreen: true,

  build: {
    // 浏览器兼容性 ‘esnext' | 'modules'
    target: 'modules',
    //输出路径
    outDir: '../dist',
    // 生成静态资源的存放路径
    assetsDir: '../assets',
    // 小于此阈值的导入或引用资源将内联为 base64 编码, 以避免额外的http请求, 设置为 0, 可以完全禁用此项,
    assetsInlineLimit: 4096,
    // 启动 / 禁用 CSS 代码拆分
    cssCodeSplit: true,
    // 构建后是否生成 soutrce map 文件
    sourcemap: false,
    // 自定义底层的 Rollup 打包配置
    rollupOptions: {
      input: {
        admin: path.resolve(__dirname, 'src/index.html'),
        page: path.resolve(__dirname, 'src/page/index.html'),
        index: path.resolve(__dirname, 'src/index/index.html'),
      },
      output: {
        chunkFileNames: 'static/js/[name]-[hash].js',
        entryFileNames: 'static/js/[name]-[hash].js',
        assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
      }
    },

    // @rollup/plugin-commonjs 插件的选项
    commonjsOptions: {},

    // 构建的库
    // lib: { entry: string, name?: string, fORMats?: ('es' | 'cjs' | 'umd' | 'iife')[], fileName?: string },

    // 当设置为 true, 构建后将会生成 manifest.json 文件
    manifest: false,

    // 设置为 false 可以禁用最小化混淆
    // 或是用来指定是应用哪种混淆器
    // boolean | 'terser' | 'esbuild'
    minify: 'terser',

    // 传递给 Terser 的更多 minify 选项
    terserOptions: {},

    // 设置为false 来禁用将构建好的文件写入磁盘
    write: true,

    // 默认情况下 若 outDir 在 root 目录下, 则 Vite 会在构建时清空该目录。
    emptyOutDir: true,

    // 启用 / 禁用 brotli 压缩大小报告
    brotliSize: false,

    // chunk 大小警告的限制
    chunkSizeWarningLimit: 500
  }
})

访问

页面一:http://localhost:3000/index/index.html

页面二:http://localhost:3000/page/index.html

总结

到此这篇关于vite多页面配置的文章就介绍到这了,更多相关vite多页面配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vite多页面配置项目实战

本文链接: https://www.lsjlt.com/news/145338.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vite多页面配置项目实战
    目录目录结构多页面使用时,vite配置项中注意点vite.config.js 配置,仅供参考访问总结最近有多页面项目需要重构,就想试试使用vite,但是网上很多方法不太全面踩了不少的...
    99+
    2022-11-13
  • vue多页面项目开发实战指南
    目录单页应用和多页应用单页应用多页应用优缺点配置多页应用1. 修改vue.config.js2. 修改title3. 合并第三方库4. 打包第三方scss5. 其它常见设置总结单页应...
    99+
    2022-11-13
  • typescript+vite项目配置别名的方法实现
    我们为了省略冗长的路径,经常喜欢配置路径别名。但是在typescript下会遇到一些坑,比如导入路径不能以“.ts”扩展名结束,路径不识别等。下面我记录了我的...
    99+
    2022-11-13
  • Vite多环境配置项目高定制化能力详解
    目录业务背景多环境场景的业务形态Vite多环境方案实现多模式文件配置自定义环境变量Vite默认环境变量通过插件透传环境变量客户端环境差异定制效果图解决的业务场景思考业务背景 近些年来...
    99+
    2022-11-13
  • Vite vue3多页面入口打包以及部署踩坑实战
    目录为什么需要多入口一.改造项目二.vite.config.ts配置三.部署总结为什么需要多入口 公司原生的移动端上需要用webview引入一些性能要求不高的H5页面,初步考虑后选择...
    99+
    2022-11-13
  • Django项目实战之配置文件详解
    创建项目 django-admin startproject meiduo_mall 添加工程完整结构包 启动前端 python -m http.server 8080...
    99+
    2022-11-12
  • Python进阶多线程爬取网页项目实战
    目录一、网页分析二、代码实现上一篇文章介绍了并发和多线程的概念,这次就来向大家上一个实战来讲解一下如何真正的运用上多线程这个概念。 有需要的可以看看我之前这篇文章:Python进阶篇...
    99+
    2022-11-12
  • Android项目实战之仿网易新闻的页面(RecyclerView )
    本文实例实现一个仿网易新闻的页面,上面是轮播的图片,下面是 RecyclerView 显示新闻列表,具体内容如下 错误方法 <?xml version="1....
    99+
    2022-06-06
    实战 网易新闻 recyclerview 网易 Android
  • webpack如何实现多页面配置
    这篇文章主要介绍了webpack如何实现多页面配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。定目录结构首先我只需要开发环境(包含自动更新...
    99+
    2022-10-19
  • vue-cli3配置多项目并按项目分别实现打包
    目录vue-cli3配置多项目并按项目分别打包项目结构vue.config.js相关配置注意最后一步补充:开发环境如何进入不同项目环境总结vue-cli3配置多项目并按项目分别打包 ...
    99+
    2023-01-14
    vue-cli3配置多项目 vue-cli3打包 vue-cli3配置
  • vue项目多环境配置(.env)的实现
    目录什么是多环境配置,为什么要多环境配置?.env 文件配置到哪里.env文件如何配置,配置多少个?.env文件的配置如何配置运行环境如何获取全局配置项的值如何运行环境没接触...
    99+
    2022-11-12
  • 项目实战:Ubuntu系统LNMP环境下安装配置zabbix3.04
    Ubuntu 14.04(LNMP)安装配置Zabbix 3.0,LNMP安装你可以参考我上一篇博文《ubuntu安装配置LNMP》需求分析(1)Zabbix数据库可能需要大量的CPU资源,这取决于数量的监...
    99+
    2022-10-18
  • nginx配置多个前端项目实现步骤
    最近一台服务器要配置多个前端项目,当然前后端分离就需要nginx来配置了。 单个项目还好说,如下修改nginx的nginx.conf配置文件 #user nobody; worke...
    99+
    2023-03-06
    nginx配置多前端项目 nginx 多前端项目
  • vue项目多环境配置的实现方法
    这篇文章主要讲解了“vue项目多环境配置的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue项目多环境配置的实现方法”吧!目录什么是多环境配置,为什么要多环境配置.env 文件配置...
    99+
    2023-06-20
  • Android安卓实战项目---登陆注册页面(源码在文末)
    Android安卓实战项目---登陆注册页面(源码在文末🐕🐕🐕) 一.项目运行介绍 效果图: 二.具体实现 LoginActivity.java LoginActivity.ja...
    99+
    2023-10-26
    android android studio java
  • springboot项目中实现访问druid内置监控页面
    springboot 访问druid内置监控页面 1、首先加入druid依赖 <dependency> <groupId>com.alibaba&...
    99+
    2022-11-12
  • Win平台MySQL安装配置与小型项目_MySQL数据库入门与项目实战02
    Win平台MySQL安装配置与小型项目_MySQL数据库入门与项目实战02视频教程学习地址    http://edu.51cto.com/course/12255.html ...
    99+
    2022-10-18
  • vue-cli多页面应用实践之实现组件预览项目
    目录vue-cli 多页面应用实现组件预览项目多页面应用配置页面布局左侧菜单栏中间区域右侧手机页功能扩展建议仓库源码总结vue-cli 多页面应用 vue技术栈的同学,大多是用vue...
    99+
    2022-11-13
  • vue-cli+webpack如何优化多页面实例配置
    这篇文章主要介绍了vue-cli+webpack如何优化多页面实例配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue+webpack是...
    99+
    2022-10-19
  • Nginx如何实现同一个域名配置多个项目
    这篇文章主要介绍Nginx如何实现同一个域名配置多个项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用Nginx要在同一个域名下配置多个项目有两种方式:nginx按不同的目录分发给不同的项目启用二级域名,不同的项...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作