我只能使用 .require() 要求一个模块 - 有替代方案吗?

I can only require a module using .require() - is there an alternative?

我制作了这个 npm 包:https://github.com/subgeniuscorp/secret-helper

我从主 index.ts 文件中导出一个对象,如下所示:

export default {
  generateSalt,
  createHash,
  generateApiKey,
  validateHash,
  generateRandomString,
}

这是我的 tsconfig.json 的样子:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "declaration": true,
    "declarationMap": true,
    "outDir": "./lib",
    "strict": true,
    "moduleResolution": "Node",
    "esModuleInterop": true
  },
  "include": [
    "src"
  ],
  "exclude": [
    "node_modules",
    "test"
  ]
}

现在当我尝试在我的节点项目(即不是打字稿项目)中使用这个包时,我只能这样做:

const sh = require("@subgeniuscorp/secret-helper").default;

我做错了什么吗?如果没有 .default 位,我可以做些什么来要求这个项目?我试图了解我是否做错了什么,或者这是否是这两个模块交互的方式。

您要查找的名称为 export

export {
 generateSalt,
  createHash,
  generateApiKey,
  validateHash,
  generateRandomString,
}

然后您可以使用 require

像这样导入它
const sh = require("@subgeniuscorp/secret-helper")

import

import * as sh from "@subgeniuscorp/secret-helper"

import使用allowSyntheticDefaultImports标志

import sh from "@subgeniuscorp/secret-helper"