如何适配OpenHarmony 鸿蒙 PC安装Node环境第三方numeral.js库进行数据数字格式化展示

📅 2026/6/18 21:46:12
如何适配OpenHarmony 鸿蒙 PC安装Node环境第三方numeral.js库进行数据数字格式化展示
欢迎加入开源鸿蒙PC社区 https://harmonypc.csdn.net/欢迎在PC社区平台申请新建项目https://atomgit.com/OpenHarmonyPCDeveloperAtomGit 仓库地址https://atomgit.com/OpenHarmonyPCDeveloper/ohos_node_vue_ts环境搭建该文完整梳理了ARM64架构鸿蒙PCHarmonyOS/OpenHarmony6.1及以上基于CodeArts IDE搭建ViteVue前端项目的全流程与疑难解决方案。项目实操中Vite启动会出现rolldown原生模块权限拒绝报错根源是鸿蒙系统拦截未签名二进制文件最终解决方案为引入ohos-signpost自动签名工具配置npm后置钩子在依赖安装完成后自动为所有.node文件添加系统合法签名消除权限校验拦截最终实现CodeArts IDE内VueTS项目正常启动、调试。可以参考文章OpenHarmony 鸿蒙 PC CodeArts IDE 前端 ViteVue 完整开发环境搭建指南:https://blog.csdn.net/wanmeijuhao/article/details/161925265# numeral.js 完整讲解一、numeral.js是什么numeral全称 numeral.js是 npm 轻量级数字格式化展示库专门把原始数字转换成人类易读格式千分位金额、万元缩写、百分比、文件大小、货币符号等。核心定位只做展示格式化不解决高精度运算和 big.js 分工完全分开无依赖、API极简后台报表、电商价格、统计大屏必备二、和 big.js 核心区分库核心用途适合场景big.js高精度加减乘除解决 0.10.2 精度丢失价格计算、订单总价、分账、财务运算numeral数字美化、格式化展示页面渲染¥1,234.56、1.2万、50%、20MB业务标准搭配流程先用big.js精确算出金额 → 再用numeral格式化展示到页面三、安装npminstallnumeral四、常用格式化示例importnumeralfromnumeral// 1. 千分位保留2位小数金额最常用numeral(12345.678).format(0,0.00)// 12,345.68// 2. 人民币货币格式numeral(9999.9).format($0,0.00)// $9,999.90// 自定义人民币符号¥${numeral(1234).format(0,0.00)}// ¥1,234.00// 3. 大数缩写万/百万 Mnumeral(1250000).format(0.0a)// 1.3mnumeral(18000).format(0a)// 18k// 4. 百分比numeral(0.785).format(0.00%)// 78.50%// 5. 文件大小 KB/MBnumeral(10240).format(0.0b)// 10MB// 6. 只取原始数字反向解析numeral(12,345.67).value()// 12345.67五、Vue3 script setup 完整示例template div h3numeral 格式化演示/h3 p原始总价{{ totalNum }}/p p格式化金额{{ formatPrice(totalNum) }}/p p销量缩写{{ formatCount(sales) }}/p p转化率{{ formatPercent(rate) }}/p /div /template script setup import numeral from numeral // 模拟big.js计算出的精确数值 const totalNum 15689.72 const sales 128600 const rate 0.6732 // 封装金额格式化 const formatPrice (num) { return ¥${numeral(num).format(0,0.00)} } // 销量缩写 const formatCount (num) { return numeral(num).format(0.0a) } // 百分比 const formatPercent (num) { return numeral(num).format(0.00%) } /script六、全局过滤器/全局工具项目通用1. main.js 全局挂载import{createApp}fromvueimportAppfrom./App.vueimportnumeralfromnumeralconstappcreateApp(App)app.config.globalProperties.$numeralnumeral app.mount(#app)组件内使用const{proxy}getCurrentInstance()constprice¥${proxy.$numeral(19999).format(0,0.00)}2. 封装全局格式化工具 utils/format.jsimportnumeralfromnumeral// 人民币金额exportconstformatRMBnum{if(numnull||numundefined)return¥0.00return¥${numeral(num).format(0,0.00)}}// 千分位数字无符号exportconstformatNumnumnumeral(num).format(0,0)// 百分比exportconstformatPernumnumeral(num).format(0.00%)// 大数缩写exportconstformatShortnumnumeral(num).format(0.0a)七、关键注意事项不能用 numeral 做加减乘除它内部基于 JS 原生浮点数numeral(0.1).add(0.2)依然会出现精度误差计算必须交给 big.js。格式化默认自动四舍五入和金额展示需求匹配。解析带逗号、货币符号的字符串时.value()会自动清洗成纯数字numeral(¥12,345.67).value()// 12345.67空值兼容封装时提前判断null/undefined避免报错。八、电商完整业务组合示例big.js numeralimportBigfrombig.jsimportnumeralfromnumeral// 1. big.js 精确计算单价*数量constprice39.9constcount3consttotalnewBig(price).times(count).toString()// 119.7// 2. numeral 格式化展示constshowPrice¥${numeral(total).format(0,0.00)}console.log(showPrice)// ¥119.70总结同时给出ARM64架构OpenHarmony6.1及以上PC端开发方案在CodeArts IDE搭建ViteVueTS项目时rolldown的.node原生文件会因未签名被系统拦截报错通过ohos-signpost工具搭配npm钩子自动签名即可解决附带完整搭建教程链接。numeral.js 数字格式化库核心定位轻量无依赖仅负责数字页面美化展示不处理高精度运算常和big.js搭配使用big.js计算、numeral.js格式化渲染。与big.js分工big.js解决浮点数精度丢失用于财务、订单价格运算numeral.js做展示支持千分位、人民币、百分比、大数缩写、文件大小等格式。基础用法安装后可实现金额、百分比、万级缩写、文件容量格式化还能反向解析带符号、千分位的数字字符串。Vue3落地方案组件局部引入、main.js全局挂载、封装统一格式化工具函数三种使用方式提供完整演示代码。开发要点不可用于数值运算会存在精度问题格式化自动四舍五入封装工具时做好空值判断防止报错。标准业务流程先用big.js完成精准金额计算再通过numeral.js处理成美观格式展示到页面。