gpt4 book ai didi

javascript - typescript 路径别名在每个文件上都需要模块别名/注册

转载 作者:行者123 更新时间:2023-12-03 07:11:16 26 4
gpt4 key购买 nike

我正在使用 typescript v3.6.4与以下 tsconfig.json片段:


"compilerOptions": {
"moduleResolution": "node",
"baseUrl": "./src",
"paths": {
"@config/*": ["config/*"],
"@config": ["config"],
}
}

package.json 中的模块别名:
  "_moduleAliases": {
"@config": "dist/config"
}

我有以下文件夹结构:
src
|-config
|-index.ts
|-app
|index.ts
|logic.ts
|-dist

现在在 app/index.ts 中,如果我这样做:
import 'module-alias/register';
import config from '@config';

和我的 npm start命令是:
"start": "node -r ts-node/register ./src/app/index.ts",
tsc将编译成功,但 npm start会报错:
Error: Cannot find module '@config' in src/app/logic.ts

解决这个问题的唯一方法是添加
import 'module-alias/register';

src/app/logic.ts
看来我必须添加 import 'module-alias/register'在我做别名的每个文件中?这是一种配置方法吗?

最佳答案

@2021
对我来说,我遇到了完全相同的问题: typescript 只允许我在每个模块都有 import 'module-alias/register'; 时才使用模块别名。当它有这样的模块别名时在它的顶行。
花了将近一整天后,我明白了:
tsc不会帮助编译这些装饰器。因此,您必须确保 js 编译代码的每个使用者都已确认并知道如何使用别名处理这些模块导入。
IE。:

node index.js
=>
node -r module-alias/register index.js

///

mocha .
=>
mocha -r module-alias/register .

关于javascript - typescript 路径别名在每个文件上都需要模块别名/注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58634070/

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