gpt4 book ai didi

node.js - Typescript2 路径模块解析

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

tl;dr:模块解析不适用?

你好,

我正在玩转 Typescript2 模块解析功能。

我注意到现在可以指定“路径”,这样您就可以执行以下操作:

老办法

import {a} from "../../../foo"

新方式

import {a} from "services/foo"

为此,您需要向 tsconfig.json 添加一些配置

    "compilerOptions": {
"baseUrl": ".",
"paths": {
"services/*": ["./application/core/services/*"],
}
}

我遇到的问题是,在编译时,导入实际上并没有改变。我的 javascript 输出仍然包含从“services/foo”导入的内容,因此在我的 Node 服务器上运行时显然会崩溃。

我使用 gulp-typescript 来编译我的 javascript 文件:

var tsProject = ts.createProject("tsconfig.json");
return tsProject.src()
.pipe(sourcemaps.init())
.pipe(tsProject()).js
.pipe(sourcemaps.write("../api"))
.pipe(gulp.dest(function(file) {
return file.base;
}));

我完全迷失在这里,很想使用那个模块解析,这样我就可以摆脱那个 ../../导入 hell 。任何帮助将不胜感激!

最佳答案

这里的问题是 JavaScript 引擎对您的 TypeScript 配置一无所知,您在 tsconfig 中指定的内容仅用于“编译时”,当您将 TypeScript 编译成 JS 时,您需要做与 TS 相同的工作编译器只是将解析后的路径保存在JS文件中。

简单地说,所有的 JS 文件都需要处理,并将别名替换为“真实”路径。

提示:使用 npm 工具 tspath ( https://www.npmjs.com/package/tspath ),它需要 0 配置,只需在项目的某个地方运行它,所有 JS 文件将被处理并准备运行!

关于node.js - Typescript2 路径模块解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42197563/

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