1

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

我在文件中找到了解决问题的文件的paths对象,但是,因为我编译成,我的编译文件无法解析模块路径。.tsconfig.tsoutDir.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';

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

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

#!/bin/bash

npm run compile:ts
node_modules/webdriverio/bin/wdio
npm run clean:ts
4

1 回答 1

1

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

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

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

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

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

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

于 2016-12-12T22:19:24.070 回答