打字稿模块解析的根路径

时间:2016-05-31 01:18:26

标签: typescript

我有两个使用打字稿的项目。一个是核心项目: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或符号链接对我们来说将是尴尬的工作。

有没有简单的方法呢?

1 个答案:

答案 0 :(得分:2)

  

有没有简单的方法呢

你需要在tsconfig.json中使用两件事:

  • var ajaxOptions = { url: 'Home/Save', data: JSON.stringify(payload), type: "POST", dataType: "json", }; 告诉rootDirsprojectA/scripts彼此相邻。 (警告:您的编译时环境是否支持它?)。
  • projectB/scripts如果您想使用baseUrl而不是完整的相对路径core/components(警告:您的模块加载器是否支持它?)。

这两项都是http://alm.tools/

的支持