2016-08-01 5 views
2

Ich bin mit kantigen 2 den ersten Schritten und ich versuche, die folgende Ordnerstruktur zu verwenden:Wie referenziere node_modules in Angular 2 mit dieser Ordnerstruktur?

- angular-app 
    - src 
    - dist 
    - package.json 

Wo src ist, wo die eigentliche Quelle geht und dist ist, wo die Produktionsversion nach Typoskript Zusammenstellung geht und so her.

nun die App zu laufen, habe ich den Vorschlag quickstart verwendet, habe ich installiert lite-server und ich habe den scripts Abschnitt package.json wie folgt definiert:

"scripts": { 
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ", 
    "lite": "lite-server", 
    "postinstall": "typings install", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "typings": "typings" 
} 

, nun lite-server zu sagen, dass der Code I ist innerhalb src habe mit Inhalt mit einer bs-config.json-Datei ein Ordner configs an der Wurzel, fügte hinzu:

{ 
    "port": 3000, 
    "files": ["./src/**/*.{html,htm,css,js}"], 
    "server": { "baseDir": "./src/" } 
} 

und änderte den lite Skript zu sein lite-server -c configs/bs-config.json.

Jetzt dient es die Dateien von innerhalb src. Es findet alles darin. Aber da ist ein Problem.

Auf der index.html gibt es mehrere Skripte laden von ../node_modules. Und lite-server ist dieser Ordner nicht bekannt, so dass es 404 für jede Anforderung zurückgibt, die in ../node_modules geht.

Dies ist ein großes Problem. Wie löse ich es? Wie fordere ich die Skripte innerhalb ../node_modules von innerhalb src und erhalten sie von Lite-Server?

Antwort

1

Sie können versuchen, Ihre Winkel-App-Ordner als root auf dem bs-config.json Datei (beachten Sie die zusätzliche im baseDir "") hinzuzufügen:

"server": { 
    "baseDir": ["./src", "."] 
    } 

eine Referenz wie das folgende Beispiel in Winkel-app/src/index.html:

<script src="node_modules/core-js/client/shim.min.js"></script> 

dann aufgelöst werden würde (vorausgesetzt, Ihr nodes_modules Ihr 'Winkel-App' als übergeordneter Ordner hat).