build 报错

lodash和typescript兼容性问题导致的报错(更新版本后遇到)

报错信息

javascript 复制代码
 ERROR  Failed to compile with 4 errors                          11:18:09

 error  in node_modules/@types/lodash/common/common.d.ts:266:65

TS1005: '?' expected.
    264 |         [P in keyof T]?: T[P] extends object ? object : T[P]   
    265 |     };
  > 266 |     type StringToNumber<T> = T extends `${infer N extends number}` ? N : never;
        |                                                                 ^
    267 |     // For backwards compatibility
    268 |     type LoDashImplicitArrayWrapper<T> = LoDashImplicitWrapper<T[]>;
    269 |     type LoDashImplicitNillableArrayWrapper<T> = LoDashImplicitWrapper<T[] | null | undefined>;

 error  in node_modules/@types/lodash/common/object.d.ts:1026:46

TS1005: '?' expected.
    1024 |     type GetFieldTypeOfArrayLikeByKey<T extends unknown[], K> =
    1025 |         K extends number ? T[K]
  > 1026 |         : K extends `${infer N extends number}` ? T[N]        
         |                                              ^
    1027 |         : K extends keyof T ? T[K] : undefined;
    1028 |
    1029 |     type GetFieldTypeOfStringByKey<T extends string, K> =     

 error  in node_modules/@types/lodash/common/object.d.ts:1031:46

TS1005: '?' expected.
    1029 |     type GetFieldTypeOfStringByKey<T extends string, K> =     
    1030 |         K extends number ? T[K]
  > 1031 |         : K extends `${infer N extends number}` ? T[N]        
         |                                              ^
    1032 |         : K extends keyof T ? T[K]
    1033 |         : undefined;
    1034 |

 error  in node_modules/@types/lodash/common/object.d.ts:1041:46

TS1005: '?' expected.
    1039 |         : K extends number
    1040 |             ? `${K}` extends keyof T ? T[`${K}`] : undefined  
  > 1041 |         : K extends `${infer N extends number}`
         |                                              ^
    1042 |             ? N extends keyof T ? T[N] : undefined
    1043 |         : undefined;
    1044 |

 ERROR  Error: Build failed with errors.

解决方案

javascript 复制代码
// 重新安装lodash版本适应typescript版本4.1
cnpm i -D @types/lodash@ts4.1 

内存溢出

1、安装cross-env和increase-memory-limit

复制代码
npm install cross-env increase-memory-limit  

2、package.json添加如下内容:

javascript 复制代码
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"fix-memory-limit": "cross-env LIMIT=20000 increase-memory-limit"
},

3、执行命令

复制代码
npm run fix-memory-limit

4、执行后报错:'"node --max-old-space-size=4096"' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

方案1、在项目的node_modules/.bin下面找到所有的"%_prog%" 改为 %_prog%, 去掉双引号。

方案2、避免替换代码出现风险

复制代码
"build:prod": "vue-cli-service build",
替换为
"build:prod": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js build",

"serve": "vue-cli-service serve",
替换为
"serve": "node --max_old_space_size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve --open",
相关推荐
你挚爱的强哥1 小时前
Vue2 实现 1.5s 十连击监听(连续点击若干次),封装通用可复用点击检测工具,不用 data!Vue 封装通用连击监听方法,支持自定义时长与点击次数
前端·javascript·vue.js
卓怡学长3 小时前
w266基于spring boot + vue 圣地延安美食乐享系统
java·数据库·vue.js·spring boot·spring·intellij-idea
Random_index5 小时前
#Vue3篇: Vue 项目发版后如何提示用户刷新?基于 package.json 版本号的前端更新检测方案
前端·vue.js·json
用户83134859306987 小时前
Cesium自定义可调节星空夜景+星星闪烁
vue.js·cesium
白露与泡影7 小时前
用 Spring Boot + Vue + Fuzio 构建现代 Java 桌面应用
java·vue.js·spring boot
WindfallSheng9 小时前
从Vibe Coding到Spec Coding:一套可落地的AI-SDD企业级研发实战工程
javascript·vue.js
我有满天星辰9 小时前
Vue 指令完全指南:从 Vue 2 到 Vue 3 的演进与实战
前端·javascript·vue.js
我有满天星辰12 小时前
Vue 3 响应式双雄:ref 与 reactive 完全指南
前端·javascript·vue.js
leoZ2311 天前
Claude 驱动的全栈开发:Spring Boot + Vue 的 BS 架构实践
vue.js·spring boot·架构
荒诞英雄1 天前
从 17MB Vendor 大包到按需加载:Vite 多入口 Vue 组件库首屏优化实践
vue.js·vite