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",
相关推荐
QQ1__8115175156 小时前
Spring boot名城小区物业管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
IT枫斗者7 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
難釋懷8 小时前
Vue混入
前端·javascript·vue.js
訾博ZiBo8 小时前
Vue3响应式高阶用法之toRaw()
javascript·vue.js·ecmascript
涵涵(互关)11 小时前
GoView各项目文件中的相关语法2
前端·javascript·vue.js
焰火199912 小时前
[Vue]可重置的响应式状态reactive
前端·vue.js
源码宝12 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
老王以为12 小时前
为什么 React 和 Vue 不一样?
前端·vue.js·react.js
web打印社区12 小时前
2026最新Web静默打印解决方案,无插件无预览,完美替代Lodop
前端·javascript·vue.js·electron·pdf
Forever7_14 小时前
Vue 全局监控用户行为,最强方案!
vue.js