gpt4 book ai didi

node.js - 从 NPM 包中导出多个模块

转载 作者:行者123 更新时间:2023-12-04 01:40:48 31 4
gpt4 key购买 nike

我有一个使用 Node 和 Typescript 的相当大的项目 A。在项目 A 中,我有很多不同的模块,我想在另一个项目 B 中重用它们。

因此我用这个 tsconfig.json 构建了项目 A:

{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"declaration": true,
"outDir": "./dist",
"sourceMap": true,
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"typeRoots": ["./node_modules/@types", "./modules/@types"]
},
"exclude": ["node_modules"]
}

所以所有文件都以这种方式构建到/dist 文件夹中:
  • 距离
  • 模块A.js
  • 模块A.map
  • 模块广告
  • 模块B.js
  • 模块B.map
  • 模块 B.d.ts
  • ....

  • 为了在另一个项目中使用这些 moduleA 和 moduleB,我将以下内容添加到项目 A 中的 package.json 中:
        "name": "projectA",
    "version": "1.0.0",
    "description": "...",
    "main": "dist/moduleA.js",
    "typings": "dist/moduleA.d.ts",

    我使用 yarn 工作空间来访问项目 A 作为项目 B 中的一个包。但问题是我只能访问模块 A,当使用 import {ModuleA} from 'projectA' 时在我的新项目 B 中?那么如何从 ProjectA 访问更多模块呢?

    最佳答案

    只需将所有导出合并到一个 index.ts为你做把戏?

    包.json(项目A):

    {
    "main": "dist/index.js",
    "typings": "dist/index.d.ts",
    ...
    }

    index.ts(项目A):
    // Adjust the relative import paths 
    // and identifiers to your structure
    export { ModuleA } from "./moduleA";
    export { ModuleB } from "./moduleB";

    projectB中的一些模块:
    import {ModuleA, ModuleB} from 'projectA'

    关于node.js - 从 NPM 包中导出多个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57513973/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com