gpt4 book ai didi

typescript - 使用 typescript 的路径映射不适用于 cucumber 测试运行器

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:28 25 4
gpt4 key购买 nike

在我的 typescript 项目中运行 cucumber-js 时,路径重新映射失败。使用相对路径很好,但丑陋得令人无法原谅。例如。 import ... from "@src/..." 失败,而 import ... from "../../../foo.ts" 有效很好。

我的项目看起来像这样:

package.json
tsconfig.json
src/
**/*.ts

tsconfig.json 中,我指定了重新映射路径:

  "paths": {
"@src/*": [
"src/*"
],
"*": [
"node_modules/*",
"src/types/*"
]

我的命令行是这样的:

cucumber-js 'src/**/*.feature' --require-module ts-node/register --require 'src/**/*.steps.ts' --format-options '{"snippetInterface": "async-await"}' --format json:reports/cucumber-report.json --format summary --logLevel=error 

堆栈跟踪:

Error: Cannot find module '@src/context/Bar'
at Function.Module._resolveFilename (module.js:513:15)
at Function.Module._load (module.js:463:25)
at Module.require (module.js:556:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (.../foo.steps.ts:4:1)
at Module._compile (module.js:612:30)
at Module.m._compile (.../node_modules/ts-node/src/index.ts:414:23)
at Module._extensions..js (module.js:623:10)
at Object.require.extensions.(anonymous function) [as .ts] (.../node_modules/ts-node/src/index.ts:417:12)
at Module.load (module.js:531:32)
at tryModuleLoad (module.js:494:12)
at Function.Module._load (module.js:486:3)
at Module.require (module.js:556:17)
at require (internal/module.js:11:18)
at supportCodePaths.forEach.codePath (.../node_modules/cucumber/lib/cli/index.js:142:42)

路径映射在这种情况下根本不起作用——特别是 cucumber-js。我究竟做错了什么?我已经洗牌了 CLI args,文件,没有运气。帮忙……好吗?

最佳答案

项目没有任何问题,但是 cucumber 没有意识到路径映射机制,因为 --require-module ts-node/register 提供了语言绑定(bind),但没有提供必要的路径解析智能.

为此你需要:--require-module tsconfig-paths/register

安装 tsconfig-paths

npm install --save-dev tsconfig-paths

注册模块

./node_modules/.bin/cucumber-js ... \
--require-module ts-node/register \
--require-module tsconfig-paths/register \
...

然后,体验光荣的测试成功吧!

关于typescript - 使用 typescript 的路径映射不适用于 cucumber 测试运行器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55799604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com