这是我第一次在stackoverflow上提出问题,所以如果我写了一些奇怪的内容并且感谢所有人的帮助,我会提前道歉。
我已经实现了基于Asp.Net MVC 5,TypeScript 2.2.0和使用Webpack 3.0.0编译的Angular 4.0.0的模块化解决方案。 它有一个主应用程序(MVC),它必须托管外部模块,这些模块是具有自己的后端Web Apis和自己的Angular组件的其他MVC应用程序。
我的目标是编译和部署单个模块,而不需要其他模块或主应用程序源代码的源代码,但只使用已编译的软件包和绝对类型。 通过这种方式,我只能部署我的模块(bundle.js和dlls)附加到主应用程序。
这个过程应该是:
依旧......
我只能使用webpack编译单个模块,并使用最后生成的" records.json"来解析相同的名称。文件。
问题是当我想使用其他模块的组件时。我必须使用从其他模块生成的d.ts导入类:
/// <reference path="../../../typings/module1.d.ts" />
import { HttpWrapperService } from "Module1/App/http-wrapper/http-wrapper.service";
但是当Webpack遇到import语句时,它无法解析模块,因为没有http-wrapper.service的源代码,并返回此错误:
Module not found: Error: Can't resolve 'Module1/App/http-wrapper/http-wrapper.service' in 'C:\svn\AngularApp\Module2\App\users'
如何使用&#34; records.json&#34;告诉Webpack解析从d.ts导入的模块名称?文件? 也许有插件?
解决方案的结构如下:
Root
|--- Main (MVC App)
| |
| |--- Manifest.js
| |--- Vendor.js (bundle of all third party libraries like Angular or jQuery)
| |--- Polyfills.js
| |--- App.js (bundle of main app)
|
|--- typings
| |
| |--- app.d.ts
| |--- module1.d.ts
| |--- module2.d.ts
|
|--- Module1
| |
| |--- App
| |
| |--- http-wrapper
| |
| |--- http-wrapper.service.ts
|
|--- Module2
|
|--- App
|
|--- users
|
|--- users.component.ts
|--- users.service.ts