相对于tsconfig或baseUrl的模块名称解析?

时间:2018-02-15 11:05:29

标签: typescript es6-modules

可以使用绝对路径导入模块(相对于tsconfig的resp路径)?

我倾向于将一些文件(视图)移动到子目录,我想避免修复从这些文件的导入。

目前在my-component.ts中:

import { MyService } from '../../myservice';

文件系统:

src [Folder]
   app [Folder]
      subfolder [Folder]
          my-component [Folder]
             my-component.ts
      myservice.ts
      tsconfig.json

tsconfig:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": ".",
    "module": "es2015",
    "types": []
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

1 个答案:

答案 0 :(得分:0)

我终于通过修改webpack配置来实现这一点。在webpack.config.js中找到"alias":行并将其替换为:

"alias": { ... rxPaths(), mySrc: './src' },

这将在解析模块时添加src文件夹作为根路径。现在,您可以修改main.ts以检查是否有效。

您还应该注意使baseUrl中的tsconfig.json配置与webpack配置中的alias相同:

"baseUrl": "./src"

使用Angular: 5.2.5Node 8.4.0

对此进行了测试