ReferenceError: primordials is not defined

错误经过

使用蚂蚁金服的某个第三方组件时,本地需要测试编译,执行 npm start 出现这个错误 ReferenceError: primordials is not defined。翻译后:类型错误:primordials 这个没有定义。

这个组件是蚂蚁金服的,我看了 package.json 中的 start,蚂蚁金服前端很厉害,直接封装了自己的 rc-tools 工程化工具。 我这个项目目前使用 rc-tools 如果直接查看并更改 rc-tools 不现实。


"start": "rc-tools run server",

解决过程

网上搜索,发现是 node 版本和 gulp 版本不兼容的问题。我看了一下 rc-tools 的源代码,这个库没有使用 webpack打包,使用了 gulp 工程工具。我本地 node 的版本是 v12.16.2,所以不兼容。

stackoverflow给出的方法是回退node版本或升级gulp版本。可以使用 nvm 管理本地的 node 版本。我的开发环境是 Mac,由于未知原因,使用 wget or curl 始终无法下载安装 nvm 工具(显示 443 请求出现问题)。

最后使用 n 这个管理工具,下载了早期的node版本(8) v8.16.0 现在执行 npm start 就可以打开开发环境服务器了

下面是 stackoverflow 的原文

How to fix ReferenceError: primordials is not defined in node

I have installed node modules by npm install, then I tried to do gulp sass-watch in command prompt. After that I got the below response.

[18:18:32] Requiring external module babel-register
fs.js:27
const { Math, Object, Reflect } = primordials;
ReferenceError: primordials is not defined

Have tried this before gulp sass-watch

npm -g install gulp-cli

I hit the same error. I suspect you’re using node 12 and gulp 3. That combination does not work: https://github.com/gulpjs/gulp/issues/2324

A previous workaround from Jan. does not work either: https://github.com/gulpjs/gulp/issues/2246

Solution: Either upgrade to gulp 4 or downgrade to an earlier node.

参考资料

https://stackoverflow.com/questions/55921442/how-to-fix-referenceerror-primordials-is-not-defined-in-node
https://stackoverflow.com/q/55921442/6304805
https://blog.csdn.net/zxxzxx23/article/details/103000393
https://www.jianshu.com/p/020c734e282b
https://www.jianshu.com/p/c641dcc47b48

结束语

最近接触了不少阿里巴巴的组件,也看过一点点原代码。潜意识里阿里巴巴蚂蚁金服这样的大公司的代码是完美无缺的,看过代码后,发现也有很多地方可以提高。

阿里巴巴前端代码的值得学习之处:

  • 拥有自己独立的工具库、组件库、图标库(rc-tools/ant-design/ant-design-mobile)这样整个产品就有自己独立的 UI 规范,后期维护性比较强,整体产品风格统一。
  • 代码工程化自动化完善:从代码格式检查(eslint)到单元测试、集成测试,这部分功能是小项目中缺乏的。大型项目中使用工程化工具可以方便的测试部署
"scripts": {"build": "rc-tools run build","gh-pages": "rc-tools run gh-pages","start": "rc-tools run server","compile": "rc-tools run compile --babel-runtime","pub": "rc-tools run pub --babel-runtime","lint": "rc-tools run lint","test": "jest","types": "tslint *.ts{,x} && tsc","coverage": "jest --coverage"},
  • 很多新技术新方向使用:阿里的很多组件库中已经穿插使用 ts 等,这也是未来的发展趋势,已经对应的TS的规范和工程化
export interface Props {prefixCls?: string;className?: string;style?: React.CSSProperties;defaultValue?: Moment;value?: Moment;selectedValue?: Moment;mode?: Mode;locale?: object;renderFooter?: () => React.ReactNode;renderSidebar?: () => React.ReactNode;inputMode?:String
}

蚂蚁金服组件 ReferenceError: primordials is not defined相关推荐

  1. 蚂蚁金服面对亿级并发场景的组件体系设计

    来自:蚂蚁金服公众号mPaas 作者:吕丹(凝睇),2011 年加入支付宝,先后负责了支付宝 Wap.alipass 卡券.SYNC 数据同步等项目,并参与了多次双十一.双十二.春节红包大促活动,在客 ...

  2. 蚂蚁金服分布式链路组件 SOFATracer 埋点机制解析 | SOFAChannel#15 直播整理

    <SOFA:Channel/>,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 本文根据 SOFAChan ...

  3. 2022-04-05 学习记录--React-React UI组件库-ant-design(蚂蚁金服)—— 按需引入样式 + 自定义主题

    一.流行的开源React UI组件库 流行的开源React UI组件库 material-ui(国外) 1.官网:http://www.material-ui.com/#/ 2.github:http ...

  4. AntDesign蚂蚁金服web3.9原型组件|Axure原型组件

    Ant Design是一套提炼和应用于企业级后台产品的交互语言和视觉体系.Ant Design源自蚂蚁金服体验技术部的后台产品开发,经过大量的项目实践和总结,希望能抽象出一套企业级的交互视觉规范,统一 ...

  5. 蚂蚁金服分布式链路跟踪组件 SOFATracer 总览 | 剖析 1

    2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. SOFA Scalable Open Financial Architecture 是蚂蚁金服自主研发 ...

  6. 蚂蚁金服分布式链路跟踪组件 SOFATracer 数据上报机制和源码分析 | 剖析

    2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. SOFA Scalable Open Financial Architecture 是蚂蚁金服自主研发 ...

  7. 蚂蚁金服 Ant-design 常用组件和属性整理

    蚂蚁金服 Ant-design 常用组件和属性整理 本文摘录自:AntDesign官网 1. 通用组件 1.1 Buttondisabled - booleanghost - booleanhref ...

  8. 架构系列---蚂蚁金服面对亿级并发场景的组件体系设计

    今天,我主要想和大家分享一下移动领域基础组件体系,内容大致可以分为四大块,第一块是标准移动研发所需的基础服务体系,第二块是支撑亿级并发的核心组件"移动接入"的架构演进过程,第三块是 ...

  9. 蚂蚁金服×西安银行 | 西安银行手机银行App的智能升级之路

    小蚂蚁说: 当前,数字化信号已经逐渐深入到社会的每个角落,影响着用户的心智和行为,来到数字化时代门口的银行,需要注意到数字化信号.西安银行通过引入蚂蚁金服移动开发平台mPaaS,对手机银行进行架构升级 ...

最新文章

  1. linux界面设计论文,毕业设计(论文)-基于linux的云校园桌面虚拟化系统的设计与实现.doc...
  2. datepick二格式 化时间_考研经验分享(三)英语二作文模板
  3. EventBus设计与实现分析——订阅者的注册
  4. shell脚本单词去重多个文件
  5. RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN驱动+CANopen协议
  6. FPGA常用FIFO简介
  7. C++_类和对象_C++继承_基本语法---C++语言工作笔记061
  8. 统计学硕士做了3年表格,多次跳槽失败,只因学不会数据工具
  9. poj 1324 Holedox Moving
  10. 数据结构以及相关排序
  11. python md5加密_python中的md5加密
  12. poi ppt html,POI之PPT如何添加表格简单实例
  13. app系统软件开发外包的费用:开发app多少钱的费用?
  14. 14-父子组件通讯,父传子(props)
  15. Python基础作业:百钱百鸡问题、求最大公倍数和最小公约数、判断回文数
  16. 互联网支付系统整体架构
  17. 2021寒假笔记(数论)
  18. 安装vs2015后C#注释变为英文
  19. 【简单3d网络游戏制作】——基于Unity
  20. 华为WLAN基础全套学习笔记整理

热门文章

  1. S7-200SMART指针学习(二)指针的内部结构
  2. MySQL 基础 -- 多表关系(一对一、1对多(多对一)、多对多)、多表查询(内连接、外连接、自连接、子查询(嵌套查询)、联合查询 union)、笛卡儿积
  3. 优信电子所有博客汇总(导航搜索)
  4. win10运行快捷键_阿销带你看世界——电脑技巧之电脑快捷键(WIN篇2)
  5. 仿牛客论坛项目(上)
  6. C语言——查找(折半、分块、二叉排序、哈希法)
  7. IMEI 和MEID的区别
  8. 360linux面试题,奇虎360运维工程师面试题
  9. DCQCN+QCN+DCTCP
  10. 麦子学院自动化测试-selenium视频教程