我正在用TypeScript编写一个UI页面对象模型测试项目,并且我尽力避免使用可怕的嵌套导入。
我发现paths
文件的.tsconfig
对象修复了.ts
文件中的问题,但是,因为我编译成outDir
,我的编译{{1}文件无法解析模块路径。
我在.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
的{{1}}文件中解析。
这是与.js
一起运行的src
类型项目。该命令执行一个脚本,该脚本编译,运行测试并删除npm
目录。
npm test
答案 0 :(得分:1)
我发现处理此问题的最佳方法是使用收集器/导出器文件从其收集的文件中导出所有内容。
例如,如果我有5个文件中包含不同类型的实用程序,我会适当地命名它们,然后将它们全部收集在名为utilities
的收集器/导出器文件中。
在utilities
文件中,它只是看起来像
export * from 'path/to/file1
export * from 'path/to/file2
export * from 'path/to/file3
然后我只能从收集器/导出器文件导入。
这不是很好,但它比什么都不做要好一点。