Vite/Rollup是否可以配置为仅在入口点包含的依赖项上运行vue-tsc?

3b6akqbq  于 2023-03-31  发布在  Vue.js
关注(0)|答案(2)|浏览(198)

我有一个Vue 2项目,我正在升级到Vue 3。因为Vue CLI的生命周期已经结束,我决定迁移到Vite。有很多突破性的变化,所以几乎我的/src文件夹中的每个文件都需要某种程度的重构。
我想一次只处理一个部分,我不想让vue-tsc尝试编译任何不依赖于任何输出文件的代码。目前,它正在尝试编译我/src文件夹中的 EVERY .ts和.vue文件。有没有方法可以配置我的项目以我所描述的方式工作?

import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  build: {
    outDir:'../wwwroot/dist',
    rollupOptions: {
      input: { 
        cards: fileURLToPath(new URL('./src/pages/cards/cards.ts', import.meta.url)),

      },
      output: {
        entryFileNames: `[name].js`,
        chunkFileNames: `chunks/[name].js`,
        assetFileNames: `assets/[name].[ext]`
      }      
    },
  },  
})
xkrw2x1b

xkrw2x1b1#

你要找的是维特的版本库。
默认情况下,构建包括指定的条目和public文件夹的内容。
通过声明为external1(在输出中import被替换为require()),可以从构建中排除由包含条目导入的任何模块。如果不排除,它们将被包含(缩小)。

1-一个值得注意的例外是当你的库有.jsx.tsx导出时,在这种情况下,Vite将包括自动JSX运行时。当导出react组件时,可以避免在react插件的选项中使用jsxRuntime: 'classic'。我猜vue()也是如此,但我从未在Vue中使用过jsx。

vcirk6k6

vcirk6k62#

我的问题有点用词不当,因为虽然错误是从运行脚本Vite构建过程中发出的,但它是vue-tsc导致的。
我的package.json脚本部分看起来像这样:

"dev": "vite",
"build": "run-p type-check build-only",
"watch": "vite build --watch",
"preview": "vite preview",
"build-only": "vite build --emptyOutDir",
"type-check": "vue-tsc --noEmit",

作为构建过程的一部分,vue-tsc(Vue的ts SFC编译器)会运行。它会拾取所有内容,甚至包括项目中未使用的文件。因此,只需使用build-only命令即可运行构建并跳过类型检查。

相关问题