2016-11-25 7 views
1

Hallo, ich hoffe, es geht Ihnen gut.Webpack externals Modul nicht gefunden

ich zur Zeit kämpfen mit webpack ein bisschen und war auf der Suche nach der besten Lösung für den folgenden gerecht zu werden:

ich Config laden von json will von meiner einzigen Seite app und es verwendet, wo auch immer. Das funktioniert gut:

externals: { 
    'config': JSON.stringify(getAppConfig()) 
} 

Das ist natürlich hinzugefügt in webpack config und getAppConfig ist:

var getAppConfig =() => { 
    var finalConfig = require('./config.json'); 
    if (process.argv.indexOf('--env.production')) { 
     finalConfig = Object.assign(finalConfig, require('./config.production.json')); 
    } 
    /*more stuff here but removed for simplicity*/ 
    return finalConfig; 
} 

dann innerhalb eines Moduls, das tue ich

import Config from 'config'; 

Und verwenden Sie die importierte Javascript Objekt. Überraschenderweise alles wie erwartet funktioniert :) Mein Problem tatsächlich ist dieses hässliche Fehler in webpack

ERROR in ./ClientApp/store/WeatherForecasts.ts 
Module not found: Error: Cannot resolve module 'config' in 

Ich will nicht wirklich gefälschte Fehler für CI Zwecke haben und was nicht, aber ich würde viel lieber verstehen, was los ist als ignoriere es einfach irgendwie. Übrigens, ich benutze Typoskript für das Projekt, nicht sicher, ob es etwas ändert, aber am besten, um alle Fakten zu nennen, die ich vermute. Dies ist die Typoskript-Moduldefinition:

declare module 'config' { 
    export interface Config { 
     backendUrl: string; 
    } 
    export default {} as Config; 
} 

Alle Hilfe sehr geschätzt. Peter

+0

Was ist der Wert für 'libraryTarget' in Ihrer Konfiguration? – Thaadikkaaran

+0

Sie könnten auf etwas sein. Ich habe tatsächlich 2 Konfigurationen, eine für Server-Seite vorrendern, eine für Client-Seite. Client-Seite, nichts ist eingestellt und es beschwert sich nicht. Serverseitig ist es auf commonjs eingestellt und es klagt. Will in die Veränderung schauen –

+0

Hmm, ok, so ändert es nichts zu helfen. Aber es baut definitiv Client und nicht die Server-Version. Ich werde mehr darüber nachsehen. –

Antwort

0

Ok, ich habe eine Lösung. Und ich fürchte teilweise, dass ich die Dokumente nicht richtig lese. Siehe Ich verwende webpack-merge und ich wusste nicht, dass Arrays nicht richtig zusammengeführt werden können. Daher hat meine Server-Pre-Rendering-Bundle-Konfiguration die gemeinsame überschrieben und es fehlte. Alles gut jetzt

Verwandte Themen