如何在TypeScript中将不同的文件编译到不同的文件夹中?

时间:2018-11-25 19:38:50

标签: typescript

想象一下:我有main.tssw.ts

如何将main.ts编译到js/文件夹并将sw.ts编译到root目录?能给我一个例子吗?

2 个答案:

答案 0 :(得分:1)

我在以下页面的帮助下找到了解决方案:Projects References

分步

第一

对我有用的是为每个目录创建一个新的tsconfig.json文件。之后,您应该在主要 tsconfig.json中使用它:

"references": [
    { "path": "PATH/TO/EACH/OTHER/TSCONFIG.JSON/FILES" }
]

第二

最重要的是,您还必须将此选项添加到每个次要文件 compilerOptions文件的tsconfig.json中:

"composite": true

第三

此外,使用 "include"指向特定.ts将使用的每个tsconfig.json文件:

"include": [
    "./homeWork.ts",
    "./myGame.ts"
]

"include": [
    "./*.ts" //Points to every .ts file inside that directory.
]

第四

现在,您应该能够使用与主tsconfig.json相同目录中的任何这些命令一次编译所有文件:

  • tsc --build;
  • tsc -b //Alias for the above command;
  • tsc -w -b //Above command, including the option -w for watching changes recursively

注意事项

  • 请注意,使用这些命令,编译器将遍历每个tsconfig.json可能具有的每个引用;
  • 这可能是避免在DOM和WebWorker库之间出现大肠病的好方法;
  • 引用始终会生成声明文件;
  • 编译时间变慢,尽管我不知道这是我的错误还是自然的事情。

答案 1 :(得分:0)

在单个编译中是不可能的。

您将必须使用不同的const initialState = { counter: 0 }; const myReducer = (state = initialState, action) => { switch(action.type) { case 'DO_SOMETHING': return { ...state, counter: state.counter + 1 }; case 'CLEAN_STATE': return initialState; } } 文件或class MyComponent extends React.Component { render () { return ( <div> <span>{this.props.counter}</span> <button onClick={triggerActionThatCausesDO_SOMETHING} /> </div> ); } componentWillUnmount () { triggerActionThatCausesCLEAN_STATE(); } } 选项运行return getattr(commands, packet.capitalize()) 两次。