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

问题描述 投票:3回答:1

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

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

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

使用gulp,我正在像gulp示例中那样做incremental compilation

而我的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");

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

typescript gulp
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.