模块引用中的Typescript根表示法

模块引用中的Typescript根表示法,typescript,Typescript,Typescript中是否有斜杠符号来表示应用程序的根。例如,如果我有这样的子模块 root/common/mychildModule/myChildModule.ts 是否有引用根的根表示法,例如 import { myRootModule} from 'rootnotation/my-root-module'; 还是使用../../../my root模块执行此操作的唯一方法 这是我的tsconfig.js { "compilerOptions": { "target": "e

Typescript中是否有斜杠符号来表示应用程序的根。例如,如果我有这样的子模块

root/common/mychildModule/myChildModule.ts
是否有引用根的根表示法,例如

import { myRootModule} from 'rootnotation/my-root-module';
还是使用../../../my root模块执行此操作的唯一方法

这是我的tsconfig.js

{
     "compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"noEmit": true,
"noEmitHelpers": true,
"importHelpers": true,
"strictNullChecks": false,
"baseUrl": "./src/app",
"lib": [
"dom",
"es6"
],
"typeRoots": [
  "node_modules/@types"
],
"types": [
  "hammerjs",
  "jasmine",
  "node",
  "source-map",
  "uglify-js",
  "webpack"
]
 },
   "exclude": [
"node_modules",
"dist"
],
"awesomeTypescriptLoaderOptions": {
"forkChecker": true,
"useWebpackText": true
},
 "compileOnSave": false,
  "buildOnSave": false,
 "atom": {
"rewriteTsconfig": false
 }
 }
我也有一个Tconfig的网页包

{
  "compilerOptions": {
    "target": "es5",
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "noEmit": true,
    "noEmitHelpers": true,
    "importHelpers": true,
    "strictNullChecks": false,
    "baseUrl": "./src/app/",
    "lib": [
      "es2015",
      "dom"
    ],
    "typeRoots": [
      "node_modules/@types"
    ],
    "types": [
      "hammerjs",
      "node"
    ]
  },
  "exclude": [
    "node_modules",
    "dist",
    "src/**/*.spec.ts",
    "src/**/*.e2e.ts"
  ],
  "awesomeTypescriptLoaderOptions": {
    "forkChecker": true,
    "useWebpackText": true
  },
  "angularCompilerOptions": {
    "genDir": "./compiled",
    "skipMetadataEmit": true
  },
  "compileOnSave": false,
  "buildOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}
您可以在tsconfig.json中定义baseUrl:

您可以像在baseUrl中一样在任何地方导入模块。在您的情况下,您只需执行以下操作:

import { myRootModule } from 'my-root-module';

文档:

谢谢@Saravana。我将baseurl添加为baseurl:./src/app,因为我的根模块位于其中。现在,当我在子模块中导入模块时,我得到了intellisense。但是,当我编译时,它试图在myChildModule文件夹中找到my根模块,导致找不到模块。你知道为什么它不在src/app下查找模块吗?你的tsconfig.json是什么样子的?嗨@Saravana我还添加了tsconfig.webpack.jsonI,你的配置文件没有任何问题。你能检查一下运行tsc是否会抛出错误吗?那么它可能与你正在使用的其他工具有关,而这些工具没有接收到这个配置。
import { myRootModule } from 'my-root-module';