gpt4 book ai didi

typescript - 将 typescript 目录别名解析为相对路径

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

我刚开始使用 typescript 并尝试让模块解析工作。我的问题很简单(我认为),但我不确定我的 tsconfig.json 做错了什么。

如果我有一个文件夹结构:

+ release
+ definitions
+ js
> a.js
> main.js
+ src
> main.ts
> a.ts

使用 gulp,我正在做 incremental compilation就像 gulp 的例子一样。

我的 tsconfig.json 是:

{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"src/*": [
"./src/*"
]
}
},
"files": [
"src/main.ts"
],
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}

我正在尝试允许将 src 目录别名为 src/module_name,这样分辨率就可以正常工作,例如 import foo from 'src/la/ja' .所以如果我在一个深度嵌套的文件中,比如 src/something/other/foo.ts 并且我想从 src 中的 utils 文件夹中导入一些东西,我可以避免困惑的路径 import bar from '../../../utils/bar' 并执行 from 'src/utils/bar'

在我的 main.ts 中,我试图获取:

import { a } from 'src/a'

使用正确的相对目录进行编译。使用我当前的 tsconfig.json,这解决了(定义看起来很好)并且不会抛出任何 linting 错误,但是当它编译时 - 它编译为:

const a_1 = require("src/a");

代替

const a_1 = require("./a");

因此,当尝试运行它时,它失败了,因为在 release/js/ 中找不到 src/。有没有办法强制 typescript 编译成相对路径?

最佳答案

我在使用 gulp 设置双栈 (js+ts) 编译器时遇到了这个问题,这个包帮助了:https://www.npmjs.com/package/gulp-typescript-path-resolver

关于typescript - 将 typescript 目录别名解析为相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46265982/

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