我有这个文件,粘贴在教程中(让我们面对它,文档,tuts和示例之间的差异令人震惊):
/scripts/tsconfig.json:
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"noEmitOnError": true,
"noImplicitAny": false,
"outDir": "../wwwroot/appScripts/",
"removeComments": false,
"sourceMap": true,
"target": "es5",
"moduleResolution": "node"
},
"exclude": [
"node_modules",
"typings/index",
"typings/index.d.ts"
]
}
选项设置为在保存时编译,但每当我保存一个TypeScript文件时,JavaScript输出结束于'或#39;附加到'源文件:
TypeScript
|
--test.ts
|
--test.js
,它与源/TypeScript
在物理上位于同一目录中。如果缺少tsconfig.json
,编译器会抱怨,但是当它出现时,肯定是,编译器会忽略"outDir": "../wwwroot/appScripts/"
设置。
我真的是Gulp的新手,但Gulp的任务看起来还不错:
var tsProject = ts.createProject('scripts/tsconfig.json');
gulp.task('ts', function (done) {
//var tsResult = tsProject.src()
var tsResult = gulp.src([
"scripts/*.ts"
])
.pipe(ts(tsProject), undefined, ts.reporter.fullReporter());
return tsResult.js.pipe(gulp.dest('./wwwroot/appScripts'));
});
答案 0 :(得分:10)
选项设置为在保存
时编译
保存文件时,它会自动编译该文件中导入的单个文件和文件。从IDE关闭自动编译选项,因此编译器将考虑tsconfig.json文件。
在命令行中指定输入文件时, tsconfig.json文件被忽略。
目录中存在tsconfig.json文件表示该目录是TypeScript项目的根目录。 tsconfig.json文件指定编译项目所需的根文件和编译器选项。项目以下列方式之一编译:
使用tsconfig.json
通过在没有输入文件的情况下调用tsc,在这种情况下,编译器将从当前目录开始搜索tsconfig.json文件并继续向上运行父目录链。
通过调用没有输入文件的tsc和--project(或只是-p)命令行选项来指定包含tsconfig.json文件的目录的路径。
https://www.typescriptlang.org/docs/handbook/tsconfig-json.html