[英]Is there a way to rearrange JavaScript modules generated by the TypeScript compiler?
我有一个TypeScript项目,并且该项目的结构与典型的Maven Java项目不同。 下面或多或少是项目结构的样子。
. ├── gulpfile.js ├── index.html ├── package.json ├── src │ ├── entity │ │ ├── car.ts │ │ ├── animal.ts │ └── sevice │ ├── dao │ │ ├── cardao.ts │ │ ├── animaldao.ts │ └── validator │ ├── carvalidator.ts │ └── animalvalidator.ts ├── test │ ├── entity │ │ ├── car.spec.ts │ │ ├── animal.spec.ts │ └── service │ └── dao │ ├── carvalidator.spec.ts │ └── animalvalidator.spec.ts ├── tsconfig.json └── webpack.config.js
我能够为commonjs / webpack,system和amd生成一个*.js
文件。
tsc
+ tsconfig.json
,然后再使用webpack
+ webpack.config.js
生成单个文件bundle.js 。 gulp-typescript
任务与模块设置为系统生成一个文件,LIB-system.js。 gulp-typescript
与模块设置为AMD生成一个文件,LIB-amd.js。 但是,在将这些单个*.js
文件加载到浏览器中之后(使用webpack我只使用<script>
标记,而另一个使用SystemJS
),我注意到必须实例化我的对象,如下所示。
var c = new car.Car('chevy', 'traverse', 2017);
var a = new animal.Animal('cat');
我不喜欢在代码car.Car
或animal.Animal
重复自己的事实。 有没有办法做到这一点,以便我可以在不更改项目结构的情况下执行以下操作?
var c = new entity.Car('chevy', 'traverse', 2017);
var a = new entity.Animal('cat');
当然,我可以只创建一个文件entity.ts
并在该文件中定义Car
和Animal
(或所有实体,数量很多)。 但是,对于我来说,拥有一个包含很多类的长文件只是为了将模块逻辑地组合在一起,这似乎很愚蠢。
我冒险将所有的*.ts
文件天真地合并到一个uber ts
文件中,但这实际上并没有用,因为
gulp-concat
可以执行此操作,或者我是否需要通过另一个管道将其导入进程中) 所以我的问题是,是否有可能将我的类(按功能,例如实体,Dao,验证器等)按逻辑分组而不是默认分组(按文件,我相信一个文件实际上是一个模块)?
我希望有一些工具可以实现这一目标,但尚未找到任何解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.