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",
相关推荐
华科易迅3 小时前
Vue如何集成封装Axios
前端·javascript·vue.js
h_jQuery4 小时前
vue使用gm-crypto对数据进行sm4加密处理
前端·javascript·vue.js
阿赛工作室5 小时前
Vue中onBeforeUnmount不触发的解决方案
前端·javascript·vue.js
_院长大人_6 小时前
Vue + ECharts 实现价格趋势分析图
前端·vue.js·echarts
疯笔码良6 小时前
【Vue】自适应布局
javascript·vue.js·css3
三原8 小时前
超级好用的三原后台管理v1.0.0发布🎉(Vue3 + Ant Design Vue + Java Spring Boot )附源码
java·vue.js·开源
之歆8 小时前
RBAC权限模型设计与实现深度解析
vue.js
前端Hardy8 小时前
Vue 项目必备:10 个高频实用自定义指令,直接复制即用(Vue2 / Vue3 通用)
前端·javascript·vue.js
懒大王95278 小时前
Vue 2 与 Vue 3 的区别
前端·javascript·vue.js
xuankuxiaoyao8 小时前
vue.js 实践--侦听器和样式绑定
前端·javascript·vue.js