2016-09-08 25 views
7

Tôi có tập tin này, dán từ một hướng dẫn (và chúng ta hãy đối mặt với nó, sự chênh lệch giữa tài liệu, tuts, và các ví dụ là đáng kinh ngạc):Tại sao trình biên dịch TypeScript bỏ qua tsconfig.json?

/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" 
    ] 
} 

Tùy chọn là thiết lập để biên dịch trên lưu, nhưng bất cứ khi nào tôi lưu một file nguyên cảo, sản lượng Javascript kết thúc 'dưới', hoặc 'gắn liền với', các tập tin nguồn:

TypeScript 
| 
--test.ts 
    | 
    --test.js 

, và đó là thể chất trong cùng thư mục với nguồn, /TypeScript. Nếu thiếu tsconfig.json, trình biên dịch sẽ phàn nàn, nhưng khi nó xuất hiện và chắc chắn là trình biên dịch sẽ bỏ qua cài đặt "outDir": "../wwwroot/appScripts/".

Tôi thực sự đến mới phải nuốt chửng, nhưng nhiệm vụ Gulp vẻ OK với tôi:

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

'ts' là gì? Đây có phải là module mô-đun gulp này không? https://www.npmjs.com/package/gulp-typescript –

+0

Xem gì để biên dịch khi lưu? –

Trả lời

3

Tùy chọn được thiết lập để biên dịch trên tiết kiệm

Khi bạn lưu một tập tin đó là tự động biên dịch tập tin và tệp đơn lẻ được nhập trên tệp đó. Tắt tùy chọn tự động biên dịch từ IDE của bạn, do đó trình biên dịch sẽ xem xét tệp tsconfig.json.

Khi tệp đầu vào được chỉ định trên dòng lệnh, các tệp tsconfig.json bị bỏ qua.

Sự hiện diện của tệp tsconfig.json trong thư mục cho biết thư mục là gốc của dự án TypeScript. Tệp tsconfig.json chỉ định các tệp gốc và các tùy chọn trình biên dịch cần thiết để biên dịch dự án. Một dự án được biên soạn theo một trong các cách sau:

Sử dụng tsconfig.json

  1. Bằng cách gọi tsc không có tập tin đầu vào, trong trường hợp các tìm kiếm trình biên dịch cho các tập tin tsconfig.json bắt đầu từ hiện tại thư mục và tiếp tục chuỗi thư mục chính.

  2. Bằng cách gọi tsc không có tệp đầu vào và tùy chọn dòng lệnh --project (hoặc chỉ -p) chỉ định đường dẫn của thư mục chứa tệp tsconfig.json.

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

+0

Cảm ơn câu trả lời này! Điều này khiến tôi phát điên, cho đến khi tôi nhớ rằng gần đây tôi đã thêm "" compileOnSave ": true" vào tsconfig.json của tôi. – Knotty66

Các vấn đề liên quan