我有两个使用打字稿的项目。一个是核心项目:moduleA,另一个是业务项目:moduleB。 ProjectB使用位于/scripts
文件夹中的projectA模块(ts文件)。我想通过projectA/scripts
为projectB指定模块解析根文件夹。顺便说一下:这些项目将在生产中合并。
这是我的文件结构
├───projectA
│ │ index.html
│ │ systemjs.config.js
│ │ tsconfig.json
│ │
│ └───scripts
│ └───core
│ │ app.ts
│ │ components.ts
│ │
│ └───components
│ dropdown.ts
│
└───projectB
│ tsconfig.json
│
└───scripts
└───pages
page.ts
例如:在projectB的page.ts
中,我想导入如下的核心模块。
import { DropdownList } from 'core/components';
其实我是那样做的。 page.ts
的JavaScript输出正常。但我需要修复typescript编译错误:cannot find module "core/components"
。
我可以在moduleB或symlink中使用npm install/link projectA/scripts
来实现。
但我需要通过选项tsconfig.json
或某种声明文件/ references.d.ts
/来解决它。因为,我们有数百个项目类型的项目B. npm link
或符号链接对我们来说将是尴尬的工作。
有没有简单的方法呢?
答案 0 :(得分:2)
有没有简单的方法呢
你需要在tsconfig.json中使用两件事:
var ajaxOptions = {
url: 'Home/Save',
data: JSON.stringify(payload),
type: "POST",
dataType: "json",
};
告诉rootDirs
和projectA/scripts
彼此相邻。 (警告:您的编译时环境是否支持它?)。 projectB/scripts
如果您想使用baseUrl
而不是完整的相对路径core/components
(警告:您的模块加载器是否支持它?)。 这两项都是http://alm.tools/
的支持