Tsconfig and outDir issue



我在tsconfig.json中的outDir有问题。

我有以下 tsconfig 文件:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "outDir": "dist",
    "outFile": "App.js"
  },
  "exclude": [
    "node_modules",
    "local_typings"
  ]
}

这些文件被编译到 App.js,但不是在我指定的目录 (dist( 中,而是在 tsconfig 文件所在的目录中。有人找到解决这个问题的方法吗?

实际上,我发现了问题所在。我认为这很有趣:在outFile中指定文件路径和文件名就足够了,而无需使用 outDir .因此,在这种情况下,这将是:

"outFile":"dist/App.js"

祝你好!

不幸的是,TypeScript(至少从3.3版本开始(不能同时支持outDiroutFile

我也想保持我的源目录没有中间构建文件,同时仍然使用 TypeScript 将我的代码捆绑到一个文件中,而不是需要掏出给 3rd 方实用程序,如 webpack、parcel 或 rollup,然后将其所有输出合并到一个文件中,但唉,这是(目前(不是。

(但是,要简单地在不同的目录中生成捆绑的输出,是的,outFile: "subdir/bundle.js"工作得很好。

对于一个文件或多个文件,请使用"outDir":"./dist">

对于任何寻找从模块而不是模块/dist/Anything导入的方法的人

我找到了一个相当简单的解决方案

首先,我的文件夹结构看起来像这样

- project
|- package.json
|- app
||- package.json
||- ...
|- api
||- package.json
||- ...
|- shared
||- package.json
||- tsconfig.json
||- index.ts
||- src
|||- MySharedResource.ts
|||- MySharedSomething.ts
...

(共享的是 API 和应用程序中本地安装的 npm 包(我希望能够使用简单的共享导入内容 import { MySharedResource } from "shared";

执行此操作的

方法是从MySharedResource.ts导出每个需要的组件并MySharedSomething.ts

export interface MySharedResource {
 ...
}

然后像这样从index.ts导出它:

export * from "./src/MySharedResource";
export * from "./src/MySharedSomething";

重要说明

例如,您在/shared 中的tsconfig.json应该将 outDir 选项设置为 ./dist,以便index.ts被编译为 /shared/dist/index.js,所有其他内容被编译为/shared/dist/src。此外,在您的package.json集中:

"main":"dist/index.js"

注1

您可以为每个文件导出多个内容,但是如果您想进行这样的导入

import { Thing } from 'shared/Thing';

然后,您需要在/shared 中的 index.ts 旁边有另一个文件(在本例中为 Thing.ts(,其中包含以下内容:

export * from "./src/Task";

注2

你也可以这样做

export * as Thing from "./src/Thing";

相关内容

  • 没有找到相关文章

最新更新