vue3+vite+ts项目build时报错Cannot find name 'xxxx'.

vue3+vite+ts项目build时报了一大长串错,错误如下,有自己代码的问题,居然还有根本不是自己写的,类似node_modules/@vue/runtime-core/dist/runtime-core.这种里面的错误,上网查询+尝试n久,终于解决了,解决方法放在下面了。

src/components/doc/SwitchDemo.vue:15:26 - error TS2304: Cannot find name 'b
ool'.

15   <Switch v-model:value="bool"/>
                            ~~~~

src/lib/Switch.vue:18:36 - error TS2304: Cannot find name 'value'.

18     <button :class="{'owl-checked':value}" @click="toggle" class="owl-sw
itch">
                                      ~~~~~

src/lib/Switch.vue:18:52 - error TS2304: Cannot find name 'toggle'.        

18     <button :class="{'owl-checked':value}" @click="toggle" class="owl-sw
itch">
                                                      ~~~~~~

src/components/doc/TabsDemo.vue:18:27 - error TS2304: Cannot find name 'ref
Selected'.

18   <Tabs v-model:selected="refSelected">
                             ~~~~~~~~~~~

src/views/Doc.vue:18:20 - error TS2304: Cannot find name 'asideVisible'.   

18       <aside v-if="asideVisible">
                      ~~~~~~~~~~~~

src/lib/Button.vue:43:19 - error TS2304: Cannot find name 'classes'.       

43           :class="classes"
                     ~~~~~~~

src/lib/Button.vue:44:22 - error TS2304: Cannot find name 'disabled'.      

44           :disabled="disabled">
                        ~~~~~~~~

src/lib/Button.vue:45:17 - error TS2304: Cannot find name 'loading'.       

45     <span v-if="loading" class="owl-loadingIndicator"></span>
                   ~~~~~~~

src/lib/Dialog.vue:46:19 - error TS2304: Cannot find name 'visible'.       

46   <template v-if="visible">
                     ~~~~~~~

src/lib/Dialog.vue:48:47 - error TS2304: Cannot find name 'closeOnClickOver
lay'.

48       <div class="owl-dialog-overlay" @click="closeOnClickOverlay"></div
>
                                                 ~~~~~~~~~~~~~~~~~~~       

src/components/doc/DialogDemo.vue:43:19 - error TS2304: Cannot find name 't
oggle'.

43   <Button @click="toggle">toggle</Button>
                     ~~~~~~

src/components/doc/DialogDemo.vue:44:28 - error TS2304: Cannot find name 'v
isible'.

44   <Dialog v-model:visible="visible"
                              ~~~~~~~

src/components/Topnav.vue:46:17 - error TS2304: Cannot find name 'toggleMen
uButtonVisible'.

46     <span v-if="toggleMenuButtonVisible" class="toggleAside" @click="tog
gleAside">
                   ~~~~~~~~~~~~~~~~~~~~~~~

src/components/doc/DialogDemo.vue:46:16 - error TS2304: Cannot find name 'o
k'.

46           :ok="ok"
                  ~~

src/components/doc/DialogDemo.vue:47:20 - error TS2304: Cannot find name 'c
ancel'.

47           :cancel="cancel">
                      ~~~~~~

src/components/Topnav.vue:46:70 - error TS2304: Cannot find name 'toggleAsi
de'.

46     <span v-if="toggleMenuButtonVisible" class="toggleAside" @click="tog
gleAside">
                                                                        ~~~
~~~~~~~~

src/components/doc/DialogDemo.vue:57:19 - error TS2304: Cannot find name 's
howDialog'.

57   <Button @click="showDialog">show</Button>
                     ~~~~~~~~~~

src/lib/Dialog.vue:59:29 - error TS2304: Cannot find name 'ok'.

59             <Button @click="ok">确定</Button>
                               ~~

src/lib/Dialog.vue:60:42 - error TS2304: Cannot find name 'cancel'.        

60             <Button level="main" @click="cancel">关闭</Button>
                                            ~~~~~~

src/lib/Tabs.vue:57:38 - error TS2304: Cannot find name 'selected'.        

57            :class="{selected:title===selected}"
                                        ~~~~~~~~

src/lib/Tabs.vue:58:20 - error TS2304: Cannot find name 'select'.

58            @click="select(title)"
                      ~~~~~~

src/lib/Tabs.vue:59:36 - error TS2304: Cannot find name 'titles'.

59            v-for="(title,index) in titles"
                                      ~~~~~~

src/lib/Tabs.vue:60:36 - error TS2304: Cannot find name 'selected'.        

60            :ref="el => {if(title===selected) selectedItem = el}"        
                                      ~~~~~~~~

src/lib/Tabs.vue:60:46 - error TS2304: Cannot find name 'selectedItem'.    

60            :ref="el => {if(title===selected) selectedItem = el}"        
                                                ~~~~~~~~~~~~

src/lib/Tabs.vue:66:23 - error TS2304: Cannot find name 'current'.

66       <component :is="current" :key="current.props.title"/>
                         ~~~~~~~

src/lib/Tabs.vue:66:38 - error TS2304: Cannot find name 'current'.

66       <component :is="current" :key="current.props.title"/>
                                        ~~~~~~~

node_modules/@vue/reactivity/dist/reactivity.d.ts:26:15 - error TS2748: Can
not access ambient const enums when the '--isolatedModules' flag is provide
d.

26     readonly [ReactiveFlags.IS_READONLY]: boolean;
                 ~~~~~~~~~~~~~

node_modules/@vue/runtime-core/dist/runtime-core.d.ts:1225:6 - error TS2748
: Cannot access ambient const enums when the '--isolatedModules' flag is pr
ovided.

1225     [BooleanFlags.shouldCast]?: boolean;
          ~~~~~~~~~~~~

node_modules/@vue/runtime-core/dist/runtime-core.d.ts:1226:6 - error TS2748
: Cannot access ambient const enums when the '--isolatedModules' flag is pr
ovided.

1226     [BooleanFlags.shouldCastTrue]?: boolean;
          ~~~~~~~~~~~~

node_modules/@vue/runtime-core/dist/runtime-core.d.ts:1419:10 - error TS274
8: Cannot access ambient const enums when the '--isolatedModules' flag is p
rovided.

1419 export { ReactiveFlags }
              ~~~~~~~~~~~~~

node_modules/@vue/runtime-core/dist/runtime-core.d.ts:1775:10 - error TS274
8: Cannot access ambient const enums when the '--isolatedModules' flag is p
rovided.

1775 export { TrackOpTypes }
              ~~~~~~~~~~~~

node_modules/@vue/runtime-core/dist/runtime-core.d.ts:1804:10 - error TS274
8: Cannot access ambient const enums when the '--isolatedModules' flag is p
rovided.

1804 export { TriggerOpTypes }
              ~~~~~~~~~~~~~~

解决方法:

(一)node_modules/@vue/runtime-core/dist/runtime-core.里面东西找不到这种不是自己代码的错误,在tsconfig.json文件中添加如图:

"compilerOptions": {
    "skipLibCheck": true,
}

(二)自己写的代码显示Cannot find name 'xxxx'.这种,查了好久都没找到解决方法,最后官方的issues,找了同遭遇大佬的解答:

在package.json文件中,做如下修改:

// 删除build后面的 vue-tsc --noEmit &&,只留下vite build
"scripts": {
    "build": "vite build",
  },

然后就可以build了,完美解决啦~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容