【Vite】控制打包结构

配置 vite.config.json 文件:

import { defineConfig } from 'vite';

export default defineConfig({
    build: {
        rollupOptions: {
            output: {
                assetFileNames(chunkInfo) {
                    // css 文件
                    if (chunkInfo?.name?.endsWith('.css')) {
                        return 'styles/[name]-[hash][extname]';
                    }
                    // 图片文件
                    if (
                        ['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp'].some(
                            (ext) => chunkInfo?.name?.endsWith(ext),
                        )
                    ) {
                        return 'images/[name]-[hash][extname]';
                    }
                    // 其他文件
                    return 'assets/[name]-[hash][extname]';
                },
                // 分包
                manualChunks(id) {
                    if (id.includes('node_modules')) {
                        return 'vendor';
                    }
                },
                // js 文件
                entryFileNames: 'scripts/[name]-[hash].js',
                chunkFileNames: 'scripts/[name]-[hash].js',
            },
        },
    },
});


这里我遇到一个问题,记录一下:

vite.config.json 文件在 endsWith 处抛出错误:Property ‘endsWith’ does not exist on type ‘string’. Do you need to change your target library? Try changing the ‘lib’ compiler option to ‘es2015’ or later.

打开 tsconfig.json 一看 target,是 "ES2020" 昂!奇了怪了…

仔细看看 tsconfig.json 文件,欸~ tsconfig.json 文件的最下面有一行配置:

    "references": [{ "path": "./tsconfig.node.json" }]

到 tsconfig.node.json 一看,没有配置 target,默认为 "ES3"!再看一眼 include,为 ["vite.config.ts"]!回到 tsconfig.json 看一眼 include,为 ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]

噢~ 我好像懂了!tsconfig.json 为业务文件的 TS 配置文件,tsconfig.node.json 为 vite.config.ts 的 TS 配置文件!

于是我在 tsconfig.node.json 中配置 target"ES2020"

{
    "compilerOptions": {
        // 其他配置项
        "target": "ES2020" // 添加这一行
    },
    "include": ["vite.config.ts"]
}

OK!没有报错了~


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JS.Huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值