【问题标题】:Vite versions higher than 2.9.14 will not build my project高于 2.9.14 的 Vite 版本不会构建我的项目
【发布时间】:2023-01-31 04:04:27
【问题描述】:

我有一个 Vite React 项目,我已经研究了一段时间了。之前我一直在 vite 2.9.14 和@vitejs/plugin-react 版本 1.3.2。我认为现在是升级到两者最新版本的好时机。

这样做的结果是我的生产构建(vite 构建)没有编译我的 TypeScript/React 和 SCSS 代码。它有我的 index.html,它有我的 publicDir 资源,但是它生成的唯一资产是一个 JS 文件,其中包含少量似乎只是设置代码的内容。我的应用程序代码都不包含在内。

我要补充一点,开发服务器 (vite) 运行良好。

我正在尝试去 vite 4.0.4 和@vitejs/plugin-react 3.0.1。我在网上搜索过,试图了解这里可能出了什么问题。我什至找不到任何像我这样的报告问题。

我现在留在旧版本上。

import path from 'path';
import react from '@vitejs/plugin-react';
import fs from 'fs';
import { defineConfig } from 'vite';

const https =
    process.env.CYPRESS === 'true'
        ? undefined
        : {
                cert: fs.readFileSync(
                    path.join(
                        process.cwd(),
                        'dev',
                        'certs',
                        'localhost.cert.pem'
                    ),
                    'utf8'
                ),
                key: fs.readFileSync(
                    path.join(
                        process.cwd(),
                        'dev',
                        'certs',
                        'localhost.key.pem'
                    ),
                    'utf8'
                )
          };

export default defineConfig({
    root: path.join(process.cwd(), 'src'),
    base: '/expense-tracker/',
    publicDir: path.join(process.cwd(), 'public'),
    envDir: path.join(process.cwd(), 'environment'),
    server: {
        port: 3002,
        host: true,
        https,
        proxy: {
            '/expense-tracker/api': {
                target: 'https://localhost:8080',
                changeOrigin: true,
                secure: false,
                rewrite: (path: string) =>
                    path.replace(/^\/expense-tracker\/api/, '')
            },
            '/expense-tracker/oauth2': {
                target: 'https://apps-craigmiller160.ddns.net/oauth2',
                changeOrigin: true,
                secure: false,
                rewrite: (path: string) =>
                    path.replace(/^\/expense-tracker\/oauth2/, '')
            }
        }
    },
    plugins: [react()],
    build: {
        target: 'esnext',
        outDir: path.join(process.cwd(), 'build'),
        emptyOutDir: true
    }
});

【问题讨论】:

  • 请注意,我们更喜欢这里的技术写作风格。我们温和地劝阻问候,希望你能帮助,谢谢,预先感谢,感谢,问候,亲切的问候,签名,请你能帮忙,闲聊材料和缩写 txtspk,恳求,你有多久了被卡住了,投票建议,元评论等。只需解释你的问题,并展示你已经尝试过的,你期望的,以及实际发生的事情。

标签: vite


【解决方案1】:

好吧,我想通了这个问题。我的 index.html 错误地导入了我的根打字稿文件。在之前的 vite 版本中,支持以下相对路径语法:

<script type="module" src="./index.tsx"></script>

现在,它必须用这样的绝对路径编写:

<script type="module" src="/index.tsx"></script>

现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2015-01-20
    • 1970-01-01
    相关资源
    最近更新 更多