You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用require导入y18n模块实例化后出现i18n.__ is not a function错误

问题原因及解决方案

你遇到的问题是因为y18n v5及以上版本修改了导出方式,不再提供构造函数,而是直接导出工厂函数,不能用new关键字调用。

具体分析

旧版本(v4及以下)的y18n确实支持new Y18n()的写法,但从v5开始,官方重构了API,默认导出的是一个可直接执行的工厂函数,用new调用会导致创建的实例不包含__等核心方法,从而抛出i18n.__ is not a function错误。

解决办法

  • 方案1:适配新版本API
    去掉new关键字,直接调用工厂函数创建实例:

    const Y18n = require('y18n')
    const i18n = Y18n() // 直接调用,无需new
    

    也可以传入配置参数:

    const i18n = Y18n({
      directory: './locales',
      locale: 'en'
    })
    
  • 方案2:回退到旧版本
    如果不想修改代码,可以安装v4版本的y18n:

    npm install y18n@4 --save
    

验证版本

可以通过以下命令查看当前安装的y18n版本:

npm list y18n

内容的提问来源于stack exchange,提问作者John Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:42:46