我有一个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
任务将模块设置为system来生成单个文件 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
个文件合并到一个超级ts
文件中,但这并不是真的有效,因为
gulp-concat
是否可以执行此操作,或者我是否需要另一个包裹进入该流程这样做)所以我的问题是,是否可以逻辑地将我的类(通过函数,例如实体,dao,验证器等)分组到模块而不是默认分组(通过文件,一个文件实际上是一个模块,我相信)?
我希望有一些工具可以实现这一目标,还没有找到任何解决方案。