我只能使用 .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"
我制作了这个 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"