gpt4 book ai didi

javascript - gulp-typescript 正在编译所有 .ts 文件,而不仅仅是来自特定位置的文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:18 24 4
gpt4 key购买 nike

我有一个 gulp 任务,负责在给定位置转换 .ts 文件并在另一个给定位置吐出 .js。

我遇到的问题是,它不仅在发送到目的地之前从给定位置获取 .ts 并转换为 .js,而且还对父文件夹和同级文件夹中的所有内容执行相同的操作。

我的文件夹结构如下:

root
|__dist
|
|__source
| |__bot
| |__logon

这是我的 gulpfile.js 的简化版本:

var gulp = require("gulp"),
ts = require("gulp-typescript");

var paths = {
botScripts: 'source/bot/*.ts',
releaseBot: 'dist/bot'
};

// Create typescript project
var tsBotProject = ts.createProject('tsconfig.json');

// Create the tasks
gulp.task('botscripts', function() {

var tsResult = tsBotProject.src(paths.botScripts)
.pipe(tsBotProject());

return tsResult.js.pipe(gulp.dest(paths.releaseBot));
});

这是我的 tsconfig.json:

{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
},
"exclude": [
"node_modules"
]
}

正如我所说,它确实可以很好地转换为 .js,但我最终得到的是所有的typscript 文件,无论位置如何,都被转换为 .js 并复制到 dist 下的相同文件夹结构中:

root
|__dist
| |__bot
| | |__*.js
| |__logon
| |__*.js
|
|__source
| |__bot
| |__logon

我在这里做错了什么?

最佳答案

tsBotProject.src() 不接受任何参数。您尝试传递它 paths.botScripts,但该参数被简单地忽略。相反,tsBotProject.src() 会准确发出您在 tsconfig.json 中指定的文件。在您的情况下,这是除了 node_modules 之外的所有内容。

您有两个选择:

选项 1:您可以在 gulpfile.js 中使用 tsBotProject.src(),如下所示:

var tsResult = tsBotProject.src()
.pipe(tsBotProject());

为了使其正常工作,您还必须向 tsconfig.json 添加一个 include 属性:

{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
},
"include": [
"source/bot/*.ts"
],
"exclude": [
"node_modules"
]
}

选项 2:gulpfile.js 中使用 gulp.src() 而不是 tsBotProject.src():

var tsResult = gulp.src(paths.botScripts)
.pipe(tsBotProject());

关于javascript - gulp-typescript 正在编译所有 .ts 文件,而不仅仅是来自特定位置的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40367239/

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