为Node tsc编译器指定systemJS配置文件

时间:2016-09-02 14:14:36

标签: typescript systemjs tsc

现在,Node tsc编译器会查看看起来像这样的tsconfig.json文件:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  }
}

使用"module": "system"行,您可以指定它以使用SystemJS来管理模块。是否可以配置SystemJS将使用哪个配置文件?我希望能够指定自定义模块,以便Typescript不会抱怨它们,而无需为每个模块创建单独的.d.ts文件。它现在似乎没有systemjs.config.jssystem-config.js

1 个答案:

答案 0 :(得分:1)

我对SystemJS文件中使用tsconfig.json配置的评论仍然相关,因为没有选择这样做。

但是,既然我明白了你想要的东西,那么如果你以正确的方式构建你的代码,就可以使用打字稿。 我们假设以下模块:

  • ModuleA
    • SubModuleOne
    • SubModuleTwo

在开发中你想要从./ModuleA/SubModuleOne导入,但在prod中它应该来自./ModuleA,因为你将所有内部模块编译成一个同名的文件。

那么总是从./ModuleA导入怎么样? 根据{{​​3}}:

  

导入语句,例如来自“./moduleB”的import {b}   /root/src/moduleA.ts会导致尝试以下操作   用于定位“./moduleB”的位置:

     
      
  1. /root/src/moduleB.ts
  2.   
  3. /root/src/moduleB.tsx
  4.   
  5. /root/src/moduleB.d.ts
  6.   
  7. /root/src/moduleB/package.json(如果它指定了“typings”属性)
  8.   
  9. /root/src/moduleB/index.ts
  10.   
  11. /root/src/moduleB/index.tsx
  12.   
  13. /root/src/moduleB/index.d.ts
  14.   

因此,如果您有./ModuleA/index.d.ts(或.ts,那么您可以在其中包含所有内部模块,然后只需从./ModuleA导入即可在dev和prod中使用。 /> 它有点像带有__init__.py

的python模块

希望能为你效劳。