我正在尝试使用gulp和gulp-typescript npm模块编译我的打字稿文件。我之前已经使用过许多应用程序,但从未遇到过我自己似乎无法解决的问题。 'compile'任务开始,但永远不会结束。这是我的gulpfile.js:
var gulp = require('gulp');
var del = require('del');
var typescript = require('gulp-typescript');
var tscConfig = require('./tsconfig.json');
var exec = require('child_process').exec;
gulp.task('clean', function(){
return del('./public/dist/**/*');
});
gulp.task('compile', ['clean'], function(){
return gulp
.src('./public/ts/**/*.ts')
.pipe(typescript(tscConfig.compilerOptions))
.pipe(gulp.dest('./public/dist'))
});
gulp.task('connect', function (cb) {
exec('node server', function (err, stdout, stderr) {
console.log(stdout);
});
})
gulp.task('watch', function(){
gulp.watch(['./public/ts/**/*.ts'], ['compile', 'connect'])
.on('change', function(event){
console.log('\x1b[33m', 'The file ' + event.path + 'has been modified.');
});
});
gulp.task('default', ['watch', 'compile', 'connect']);
这是我的tsConfig.json文件:
{
"compilerOptions": {
"outDir": "dist",
"target": "es2015",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
我的架构如下:
\myapp
\--public
\--ts
\--dist
index.html
gulpfile.js
tsconfig.json
除了我的'编译'任务之外的一切似乎都运行正常。请问,为什么出现问题?我一直在寻找几个小时,寻找与其他工作项目的差异,但没有找到任何东西......
答案 0 :(得分:0)
编译'任务开始,但永远不会结束
您必须分享您的代码。您可能想在官方回购中创建一个问题,如下所示:https://github.com/Microsoft/TypeScript/issues/8401
如果您不想分享您的代码:
typescript
构建环境答案 1 :(得分:0)
gulp.task('compile', ['clean'], function(){
return gulp
.src('myapp/ts/**/*.ts')
.pipe(typescript(tscConfig.compilerOptions))
.pipe(gulp.dest('myapp/dist'))
});
首先,您可以验证.src中的路径吗?它正在传递myapp/ts/**/*.ts
,但在您的体系结构中,ts
文件夹似乎与public
下的myapp
文件夹中存在,因此它应该看起来像myapp/public/ts/**/*.ts
答案 2 :(得分:0)
好的,我明白了。问题来自我的tsconfig.json
文件。第"outDir": "dist"
行似乎覆盖了.pipe(gulp.dest('myapp/dist'))
中的gulpfile.js
。愚蠢的错误,因为我不需要那行代码,但我从一个古老的项目中复制/粘贴它,并且不认为编译器选项应该有所不同。无论如何,问题已经解决,谢谢你的回答。