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",
相关推荐
二哈喇子!4 小时前
Vue2 监听器 watcher
前端·javascript·vue.js
Amumu121387 小时前
Vue核心(三)
前端·javascript·vue.js
雨中深巷的油纸伞8 小时前
vue 项目部署到iis后 浏览器刷新404
前端·javascript·vue.js
谢尔登8 小时前
从源码视角来看Pinia!
前端·javascript·vue.js
沛沛老爹9 小时前
从Web到AI:行业专属Agent Skills生态系统技术演进实战
java·开发语言·前端·vue.js·人工智能·rag·企业转型
HWL567910 小时前
显示器缩放和更改分辨率的区别
前端·css·vue.js·计算机外设·html5
yanyu-yaya10 小时前
速学兼复习之vue3章节3
前端·javascript·vue.js·学习·前端框架
tkevinjd11 小时前
3-Vue&Ajax
前端·vue.js·ajax
林恒smileZAZ11 小时前
前端拖拽,看似简单,其实处处是坑
前端·javascript·vue.js