2016-07-01 25 views
9

Il nostro progetto utilizza l'opzione webpack resolve.root per importare moduli con percorsi assoluti. (evitando qualcosa come ../../../module)
Nel suo stato attuale il progetto utilizza babel-loader che funziona perfettamente bene.
Il mio compito è quello di migrare l'app a Angular 2.
Quindi sono attualmente in fase di transizione a TypeScript.
In qualche modo sembra che lo ts-loader non funzioni in combinazione con l'opzione resolve.root della configurazione del pacchetto web.Webpack resolve.root e caricatore TypeScript

Esempio di webpack.config.js

resolve: { 
    root: [ 
     path.resolve('./node_modules'), 
     path.resolve('./app'), 
     path.resolve('./app/lib'), 
    ] 
}, 

Esempio di un modulo di importazione
import AbstractListState from 'states/abstract_list_state';

La directory states si trova all'interno della directory app/lib.

errore durante l'esecuzione webpack

ERROR in ./app/mainViews/panel/panel.controller.ts 
Module not found: Error: Cannot resolve module 'states/abstract_list_state' in C:\Users\...\Project\app\mainViews\panel 
@ ./app/mainViews/panel/panel.controller.ts 4:28-65 
+2

See: https://github.com/ Microsoft/tipografico/temi/5039. Un modo per farlo con il file 'tsconfig.json' sarà implementato in TypeScript 2. Apparentemente, puoi già provarlo oggi con' typescript @ next'. – Blackus

risposta

2

Pre dattiloscritto versione 2.0 cercherà di caricare i moduli con un percorso assoluto dalla directory node_modules. Questo perché il resultion del modulo di TypeScript è impostato su "node" per impostazione predefinita. Il che significa che funziona come il metodo di richiesta del nodo. Quindi, anche se stai usando webpack per costruire la tua app, TypeScript (e il suo compilatore) vorranno comunque caricare i file.

Per consentire a Webpack di importare i moduli con percorso assoluto, è necessario tornare indietro e utilizzare il metodo require. In questo modo TypeScript permetterà al webpack di importare cose. Ma, naturalmente, non sarà possibile ottenere qualsiasi tipo di inferenza, completamento automatico, ...

Oppure, si aggiorna alla versione beta 2.0 dattiloscritto e dare una prova: https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#module-resolution-enhancements-baseurl-path-mapping-rootdirs-and-tracing

Problemi correlati