解析 TypeScript outDir 中的路径



我正在用TypeScript编写一个UI页面对象模型测试项目,我正在尽力避免可怕的嵌套导入。

我在.ts文件中找到了修复问题的.tsconfig文件的paths对象,但是,由于我编译成outDir,我编译的.js文件无法解析模块路径。

我在model目录中开发并编译成src目录。

我已经设置了我的.tsconfig文件,如下所示

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": true,
    "noImplicitAny": false,
    "outDir": "src/",
    "baseUrl": "./model/",
    "paths": {
      "general.utils": [ "lib/general/general.utils" ],
      "pretest.setup": [ "lib/pretest.setup/pretest.setup" ],
      "tpapi": [ "lib/tpapi/tpapi" ],
      "*": [ "*" ]
    }
  },
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false
}

这种paths允许我

import { chooseRandomValueFrom } from 'general.utils';

model.ts文件中解析,但不会在 src 中的.js文件中解析。

这是一个使用 npm test 运行的npm类型项目。该命令执行一个脚本,该脚本编译、运行测试并删除src目录。

#!/bin/bash
npm run compile:ts
node_modules/webdriverio/bin/wdio
npm run clean:ts

我发现处理此问题的最佳方法是拥有一个收集器/导出器文件,该文件从它收集的文件中导出所有内容。

例如,如果我有 5 个文件中有不同类型的实用程序,我会适当地命名它们,然后将它们全部收集到一个名为 utilities 的收集器/导出器文件中。

utilities文件中,它只是看起来像

export * from 'path/to/file1
export * from 'path/to/file2
export * from 'path/to/file3

然后我只能从收集器/导出器文件导入。

这不是很好,但总比什么都不做要好一点。

相关内容

  • 没有找到相关文章

最新更新