şu dizin yapısı ile basit typescript projeyi düşünün:Nasıl baseUrl kullanarak Modüller alınırken Mutlak Yolları Çözmek için tsc almak için?
| package.json
| tsconfig.json
|
\---src
| app.ts
|
\---foobar
Foo.ts
Bar.ts
tsconfig.json
./src/
baseUrl
olmak için yapılandırıldı.
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outDir": "./dist/",
"baseUrl": "./src/"
},
"include": [
"./src/**/*"
],
"exclude": [
"node_modules"
]
}
Şimdi Bar.ts
içinde Foo
almak istediğiniz varsayalım. Benim anlayış göreli yollar
import { Foo } from './Foo'
benim anlayış doğru ise, typescript derleyici gerekir aksine
baseUrl
ayarlayarak, şimdi modülleri
import { Foo } from 'foobar/Foo'
ithal etmek mutlak yolları kullanacak olmasıdır Bar.ts
derlenirken 'u ./Foo
'a otomatik olarak çözümleyin.
import { Foo } from 'foobar/Foo';
export class Bar {
foo: Foo;
constructor(num: number) {
this.foo = new Foo(num);
}
}
Çalışıyor tsc
hata olmadan derler. Yine de, biz aslında Bar.js
derlenmiş baktığımızda, yolun doğru bir şekilde çözülmediğini göreceğiz, bu bize verecektik, eğer biz çalıştırırsak hata modülünü bulamıyoruz.
"use strict";
const Foo_1 = require("foobar/Foo");
class Bar {
constructor(num) {
this.foo = new Foo_1.Foo(num);
}
}
exports.Bar = Bar;
Yani benim soru: baseUrl
kullanarak modülleri aktarırken ben tsc
doğru mutlak yolları çözmek için alabilirim? Ya da bu yapılabilecek bir şey değilse, o zaman baseUrl
'un amacı nedir?
Teşekkürler!Başka bir deyişle, 'tsc' mutlak yolun göreceli yola dönüştürülmesinden sorumlu değildir ve bunun yerine modül yükleyicisini bunun yerine çözmesi için yapılandırmam gerekiyor mu? Durum buysa, tsc'yi basitçe göreceli yola dönüştürmek için bir yol var mı? – Zsw
Hayır, bildiğim kadarıyla, 'tsc' sizin için yolları dönüştürmeyecek. Mümkünse, 'import' ifadenizdeki modül yükleyici spec/config'unuza uyan yolların kullanılması daha kolay olacaktır ve sonra 'tsc' modül modlarının buna göre nasıl çözüleceğini söylemek için çeşitli derleyici seçeneklerini kullanın. – Seamus
@Zsw Alternatif olarak, "outFile" derleyici seçeneğini işaretleyin. Modülleri tek bir çıktıda birleştirir: https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#concatenate-amd-and-system-modules-with---outfile – Seamus