compiler-construction – 将许多打字稿文件转换为1个js文件,同时使用commonJS模块

我一直在使用“–out”编译器标志来创建1个
javascript输出文件.

我有很多.ts文件,并通过将它放在每个文件的顶部来管理它:

/// <reference path="../references.ts" /> 

现在我真的想在这个项目中使用React.js.在“打字稿”中“正确”使用反应的唯一方法(这样我仍然能够以打字稿的方式创建类)似乎是通过使用这个库react-typescript

但这是使用commonjs模块设置库,然后使用browserify将它们组合成1个文件:

import React = require('react');
import ReactTypescript = require('react-typescript');

在项目的示例中,所有.ts文件首先通过在顶部使用大量“require”调用来列出其本地.ts依赖项.

问题是:当我将–module“commonjs”标志添加到编译器命令时, – out的通常行为停止工作,因为输出中不再包含参考文件.看来编译器不能和–module一起使用–out对吧?

到目前为止,我不知道如何将这个’react-typescript’javascript模块转换为内部打字稿模块.因此,在我看来,继续的唯一方法是将所有引用标记更改为需要调用.
我的疑问是,如果这是正确的方法,还是有另一种方法?

由于我有这么多文件和很多依赖项,我担心所有这些需要调用会不必要地使最终代码复杂化,甚至可能影响性能?

最佳答案

the compiler cannot use –out together with –module, right

是.外部模块和–out目前是互斥的.但是,您可以跟踪功能请求:https://github.com/Microsoft/TypeScript/issues/17

My question is if this is the right approach or if there is another way

对于您计划扩展的任何项目,建议使用外部模块. Libs是 – 但不是应用程序的有效目标.

Since I have so many files and so many dependencies, I’m worried that all these require calls would unnecessarily complicate the final code

不需要痛苦.看看:https://github.com/grunt-ts/grunt-ts#transforms

possible even effect the performance?

与网络下载速度相比,任何性能影响(速度)都是最小的.在我的系统上大约5ms用于3megs的js文件,用于requirejs来做它的东西.

点赞