这段代码来自一个自定义的i18n模块,位于./esm/locale/en.js:

import cardinal from '../rules/rule5';
import ordinal from '../rules/rule42';
var pluralRule = {
  ordinal: ordinal,
  cardinal: cardinal,
};
export default pluralRule;

出口量为package.json美元,

{
  "exports": {
    "./en": {
       "default": "./esm/locale/en.js",
    }
  }
}

i18n模块作为依赖项安装在项目中,并用作

// some .ts file in the project
import en from 'custom-i18n/en';

console.log(en);
// { default: [Getter] }

为什么en{ default }而不是{ ordinal, cardinal }

推荐答案

您可以在我针对您的项目打开的一个pull request中看到一个示例,它给出了运行console.log时所期望的输出.

两个重大变化是:

与您的构建相关的其他更改包括:

  • 优先 Select tsx而不是ts-node,以避免运行generate.ts时出现未知的文件扩展名错误.
  • 确保在运行构建脚本时从package.json复制type字段.

判断/测试相关变更:

  • 添加了apps/demo-next/file.jsapps/demo-next/file.tsx.

在构建了base包和plurals包之后,您应该能够从存储库的根目录运行这些命令:

  • node apps/demo-next/file.js
  • ./node_modules/.bin/tsx apps/demo-next/file.tsx

生成以下输出:

{ ordinal: [Function: default], cardinal: [Function: default] }

我可以通过执行一个.ts文件,并使用问题before making the changes in the pull request中所示的示例代码来重现您所询问的{ default: [Getter] }控制台输出,但我没有深入探讨为什么.我猜tsx默认为plurals包的main字段,它指向一个生成以下输出的CJS构建:

var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};

var en_1 = require("./locale/en");
Object.defineProperty(exports, "en", { enumerable: true, get: function () { return __importDefault(en_1).default; } });

Javascript相关问答推荐

如何提取Cypress中文本

我的glb文件没有加载到我的three.js文件中

根据总价格对航班优惠数组进行排序并检索前五个结果- Angular HTTP请求

vscode扩展-webView Panel按钮不起任何作用

将2D数组转换为图形

将字符串UTC Date转换为ngx—counting leftTime配置值的数字

用JavaScript复制C#CRC 32生成器

如何在输入元素中附加一个属性为checkbox?

Html文件和客户端存储的相关问题,有没有可能?

当使用';字母而不是与';var#39;一起使用时,访问窗口为什么返回未定义的?

如何在DYGRAPS中更改鼠标事件和键盘输入

如何在Press上重新启动EXPO-AV视频?

从逗号和破折号分隔的给定字符串中查找所有有效的星期几

未捕获的运行时错误:调度程序为空

使用Document.Evaluate() Select 一个包含撇号的HTML元素

是否可以将Select()和Sample()与Mongoose结合使用?

如何根据输入数量正确显示alert ?

为什么我看到的是回复,而不是我的文档?

将Singleton实例设置为未定义后的Angular 变量引用持久性行为

将字体样式应用于material -UI条形图图例