1

我在 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 文件所在的目录中。有人找到解决这个问题的方法吗?

4

4 回答 4

2

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

"outFile":"dist/App.js"

祝你有个好的一天!

于 2016-02-08T14:03:13.357 回答
1

不幸的是,TypeScript(至少从 3.3 版开始)不能同时支持outDir两者outFile

我也希望保持我的源目录中没有中间构建文件,同时仍然使用 TypeScript 将我的代码捆绑到一个文件中,而不是需要使用第三方实用程序(例如 webpack、parcel 或 rollup)来组合它的所有输出到单个文件中,但可惜的是,(目前)不是。

(但是,只需在不同的目录中生成捆绑的输出,是的,outFile: "subdir/bundle.js"就可以了。)

于 2019-03-05T20:14:01.993 回答
0

对一个文件或多个文件使用 "outDir":"./dist"

于 2017-09-16T16:49:14.340 回答
0

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

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

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

- project
|- package.json

|- app
||- package.json
||- ...

|- api
||- package.json
||- ...

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

(shared 是一个安装在 api 和 app 本地的 npm 包)我希望能够使用简单的方式从 shared 中导入东西 import { MySharedResource } from "shared";

这样做的方法是从MySharedResource.ts和导出每个需要的组件MySharedSomething.ts

export interface MySharedResource {
 ...
}

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

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

重要的提示

tsconfig.json的 in /shared 应该将outDir选项设置为./dist(例如),以便index.ts编译到/shared/dist/index.js并且所有其他内容都编译到 /shared/dist/src 中。另外,在你的package.json集合中:

"main":"dist/index.js"

注1

每个导出的文件可以有多个东西,但是如果你想要像这样的导入

import { Thing } from 'shared/Thing';

然后你需要在 /sharedThing.ts旁边有另一个文件(在这种情况下)index.ts,其中包含以下内容:

export * from "./src/Task";

笔记2

你也可以这样做

export * as Thing from "./src/Thing";
于 2021-05-13T14:55:44.230 回答