写这篇文章之前,我已经查过百度搜索 primordials is not defined 结果前五条,均是通过降低 Node.js 版本或者多 Node.js 环境共存的方案,保证编译环境为 Node.js v10.x ,这里我并不想这样做,其实我是已经解决了问题才去搜索百度的,因为我不希望让你不幸看到了重复而无用的解决方案,而浪费你的时间。

但是,最近经过谷歌找到一篇文章,文章出处点击这里。

原文讲述的是在苹果系统下的开发

macOS Catalina 10.15.7

现在根据原文转换成window10系统下的操作,先说一下我项目的版本:

Node.js v14.15.4
@vue/cli 4.5.11
element-ui 2.15.0

在当前操作环境下是没有问题的,重点是不需要降级 Node.js,也不需要搞多个 Node.js 环境,你大概只需要对安装的包稍作调整即可。

非官方正确步骤

我的 Vue.js 项目依赖包管理器是 npm ,如果你是 yarn ,对应调整。

请安装如下配置 ElementUI 主题相关的包:

npm i element-themex element-theme-chalk -D

这就完啦?是的。。。其它的就跟官方一样了,我顺便写一下。

通过以下命令创建完整的 element-variables.scss 文件:

node_modules/.bin/et -i

这时会出现,'node_modules' 不是内部或外部命令,也不是可运行的程序或批处理文件。

原因是在windows系统中要用反斜杠

修改后的,在window系统下命令:

.\node_modules\.bin\et -i

按照官方文档,这一步就会报错,不过按照我的步骤应该没有问题了。接着打开新创建,尝试性修改 $--color-primary 成其他颜色,例如:

$--color-primary: red !default;

接着进行编译,执行如下命令:

.\node_modules\.bin\et

就会自动生成大量的文件,存放在项目根目录的 theme 下,一般来说项目都有配置按需引入,此时接着修改 babel.config.js 文件:

module.exports = {presets: ['@vue/cli-plugin-babel/preset'],plugins: [['component',{libraryName: 'element-ui',styleLibraryName: '~theme',},],],
}

重新启动项目,可以看到整体主题色的主色变成了红色,这就算大功告成了。

补充说明

  • 在执行主题配置文件的修改后编译,我这里会一直报错,其实没什么影响,错误信息如下:
⠼ build element themeReplace Autoprefixer browsers option to Browserslist config.Use browserslist key in package.json or .browserslistrc file.Using browsers option can cause errors. Browserslist configcan be used for Babel, Autoprefixer, postcss-normalize and other tools.If you really need to use option, rename it to overrideBrowserslist.Learn more at:https://github.com/browserslist/browserslist#readmehttps://twitter.com/browserslistReplace Autoprefixer browsers option to Browserslist config.Use browserslist key in package.json or .browserslistrc file.Using browsers option can cause errors. Browserslist configcan be used for Babel, Autoprefixer, postcss-normalize and other tools.If you really need to use option, rename it to overrideBrowserslist.Learn more at:https://github.com/browserslist/browserslist#readmehttps://twitter.com/browserslist

如果你在意,可以试试修改 .browserslistrc ,我恰巧看到有人发了个 fix ,不过被关了,有兴趣可以自己试试,详情阅读:fix: node.js 12 error primordials is not defined,当然我觉得也许你也可以通过修改编译配置中的 browsers 属性解决,我没实验,仅供参考~

  • 另外通过工具生成的theme目录可以考虑在.gitignore中忽略,他只是在编译过程中用到,当然如果在服务端需要编译的话,就不要忽略了。

最后

好了关于这个解决方案我当然也是通过查找官方 Issues,然后整理总结出来的,参考:

  • ReferenceError: primordials is not defined - when trying to generate theme variables file

当然这个哥们在哪找到的- -我就不再细究了。其实我尝试的找了下这个包,在npmjs上面发现,指向的还是官方主题配置仓。所以大概是官方某些内部群流出的临时方案吧。

ElementUI自定义主题报错“primordials is not defined”最佳解决方案相关推荐

  1. npm run build 打包报错primordials is not defined的解决方法

    npm run build 打包报错primordials is not defined的解决方法 D:\uniapp项目\huishua_web_agent>npm run build> ...

  2. mybatis-plus自定义sql报错 ew.customSqlSegment

    mybatis-plus自定义sql报错: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibat ...

  3. Cesium 1.02.0 及以上版本下自定义材质报错:[Cesium WebGL] ERROR: 0:1: ‘varying‘ : Illegal use of reserved word

    Cesium 1.02.0 及以上版本下自定义材质报错:[Cesium WebGL] ERROR: 0:1: 'varying' : Illegal use of reserved word 报错原因 ...

  4. elementUi自定义主题色(最简单优雅)

    elementUi自定义主题色 Element 的 theme-chalk 使用 SCSS 编写,如果你的项目也使用了 SCSS,那么可以直接在项目中改变 Element 的样式变量: 1.新建一个样 ...

  5. VScode 导入自定义模块报错问题

    VScode 导入自定义模块报错问题 这个问题在vscode默认是从根目录下导入自定义模块,所以若模块未在根目录下存储就会报错. 个人尝试了修改文件内部的settings json内的"py ...

  6. mysql 自定义函数报错_Mysql自定义函数报错解决方法

    [最近研究mysql数据库性能的相关问题,为了对比不同版本之间的差别.笔者找了一台测试服务器升级了该服务器的mysql数据库进行测试,在升级mysql过程中遇到了一些问题并将其 1.在MySql中创建 ...

  7. mysql 自定义函数报错_Mysql自定义函数报错解决方法 | 学步园

    1.在MySql中创建自定义函数报错信息如下: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READ ...

  8. QML添加图片资源和自定义组件报错解决

    QML添加图片资源和自定义组件报错解决 建立工程 添加图片资源 使用自定义组件 QML工程如果选择Qt Quick Application,那么添加图片资源和自定义组件会出现不能文件或该类型不存在的错 ...

  9. SAP RETAIL MP30为物料Execute Forecast,报错- Status Forecast not defined –

    SAP RETAIL MP30为物料Execute Forecast,报错- Status Forecast not defined – 1, 执行事务代码MP30为物料execute forecas ...

最新文章

  1. 静态属性和静态方法2 - C++快速入门22
  2. mysql left join超时,MySQL 行锁超时排查方法优化
  3. 手画:mvc三层框架生图
  4. 【Linux系统编程】信号 (上)
  5. MyBatis 源码解读-settingsAsProperties()
  6. linux 系统函数调用:open close read write lseek
  7. centos7 yum安装mysql后启动不起来问题
  8. opencv2.4.9中HoughlinesP源码中的疑问解析!
  9. C++编程语言中整型转换为字符串类型的方法
  10. 如何从QC中导出测试用例及其测试步骤
  11. 第八届蓝桥杯省赛C/C++本科B组真题解析
  12. codeproject
  13. 你有你的百度云限速,我有我的暴力猴
  14. HihoCoder - 1370 快乐数字
  15. 关于数据菜单如何从后端获取数据
  16. c语言中英文字母的符号,C语言中的符号(国外英文资料).doc
  17. 价值链-名词解释01
  18. OneNote 2016登录时显示“很抱歉,遇到一些临时服务器问题“,重试很多遍也不管用~~~~解决方法
  19. <STM32F103ZET6>通过串口更新flash字库(包括LVGL字库烧写)
  20. DOOM启世录的启示 1

热门文章

  1. 华为ospf模拟器命令笔记(1)
  2. 时序数据库之---InflxDB(实用篇)
  3. 访客登记使用人脸识别有什么好处?
  4. 小度机器人小胖机器人_小度机器人怎么升级?智能机器人百小度快速升级全攻略[多图]...
  5. Python easyOCR图像文本提取 初识
  6. 获取新榜微信公众号指数信息,并服务器上部署
  7. win10计算机文件夹选项在哪里,win10 文件夹选项_win10文件夹选项在哪里
  8. 技术专题:XML,DB2数据库的黄金甲
  9. 西方心理学对学习的研究和认识
  10. 艾伟_转载:一个.NET委托的故事:彼得,老板和宇宙