2016-11-05 24 views
8
Ben

Webpack resolve.alias yazı tipiyle çalışmıyor mu?

böylece O bölümü yapılandırılmış import {Hello} from "./components/Hello";

Sana WebPack içinde resolve.alias kullanabilirsiniz öğrendim Bunun için

import {Hello} from "Hello"; ila daktilo versiyonunda benim ithalatı kısaltmak için denemek

şöyle

resolve: { 
    root: path.resolve(__dirname), 
    alias: { 
     Hello: "src/components/Hello" 
    }, 
    extensions: ["", ".ts", ".tsx", ".js"] 
}, 

Webpack oluşturur ve çıktı bundle.js çalışır. Bununla birlikte, typescript'in intellisense'i, bu nedenle, webpack'in resolc.aliasının typescript ile çalışıp çalışmadığı sorusudur.

Aşağıdaki issue'u buldum ama yanıtı yok.

cevap

12

Eğer ts-loader kullanıyorsanız, size tsconfig.json içinde WebPack sizin paths ayarı ile alias/resolve ayarları senkronize etmek gerekebilir.

{ 
    "compilerOptions": { 
     "baseUrl": "./", 
     "paths": { 
      "Hello": ["src/components/Hello"] 
     } 
    } 
} 

Eğer awesome-typescript-loader kullanıyorsanız, o zaman webpack the status on this issue from the repo uyarınca, sizin tsconfig.json içinde paths ayarından otomatik olarak bunu bulabilirsiniz. Bu şekilde, aynı bilgileri Webpack alias alanınızda çoğaltmanız gerekmez.

+0

Ayrıca 'paths' özelliği ayarlamak için 'awesome-typescript-loader' kullandığım gibi görünüyor. Webpack1 ve awesome-typescript-loader 1.1.1 kullanıyorum. Ama yine de çalışıyor :) – starcorn

+0

Bu şimdi beni ikinci kez yakaladı. Yolları ayarlarsanız baseUrl'i ayarladığınızdan emin olun. İkisine de ihtiyacın var. – SgtPooki

+0

açısal kısma sahip yeni proje, app/component klasörünü ekleyerek app.com bileşenini kendi klasöründe taşıyarak. tscinfig: baseUrl ekleme: "." ve yollar: {"~ c": ["src/app/components"]} (bileşenleri olarak c). export "./app.component/app.component" ile index.d.ts eklenmesi. npm, awesome-typescript-loader'ı yükleyin. vs kodu içe aktarma {AppComponent} öğesini "~ c" den çözebilir; (fare vurgusu doğru yolu gösterir). ng build -> ERROR in C: /Temp/a4-cli-test/src/app/app.module.ts (4,30): '~ c' modülünü bulamıyor. Bir şey mi özledim? – Drusantia

-1

Ben Bunu yapabileceğini düşünmek ve açıkladığınız şekilde çalışır var: Sonra

resolve: { 
    root: [ 
     path.resolve(__dirname), 
     <path_to_components_directory> //e.g. path.resolve(__dirname, 'src', 'components') 
    ], 
    extensions: ["", ".ts", ".tsx", ".js"] 
}, 

Eğer import {Hello} from "Hello";

yapabilirsiniz benim src/js dizinde dosya yollarını çözmek için bunu bilmek . Yine de yazı tipini kullanmıyorum ama sonucunu etkileyeceğini düşünmüyorum.

+1

ama typescript burada sorun – Luckylooke

İlgili konular