2016-10-04 4 views
0

Ich verwende angular2-webpack Starter, und ich möchte eine npm-Bibliothek importieren, zum Beispiel Babylon js. Ich tue wie dieseImport-Bibliothek mit angular2 - webpack

import * as BABYLON from 'babylonjs/babylon'; 

Und Babylon kommt mit einer d.ts Datei, so habe ich am Anfang der Datei

/// <reference path="../../../node_modules/babylonjs/babylon.d.ts" /> 

Obwohl ich die Bibliothek benutzen kann, als ein Visual Studio-Code Markierungen Fehler und sagt Exported external package typings file 'node_modules/babylonjs/babylon.d.ts' is not a module. und ich kann nicht die Autokomplettierung verwenden, die mit den Typings kommt. Ich bin neu mit Webpack, also weiß ich nicht, ob ich etwas einstellen muss. Meine Konfiguration ist diejenige, die mit dem Starter kommt.

Ist das der richtige Weg, eine externe Bibliothek zu importieren? Was muss ich noch konfigurieren, um diesen Fehler loszuwerden und die Autokomplettierung zu verwenden?

+0

Ich erkennen, dass ohne etwas importieren wir die Auto-Vervollständigung verwenden können, aber dann natürlich BABYLON ist nicht definiert. Ich weiß also nicht, wie man BABYLON importiert und die Typisierung behält. – ST7

+0

In der aktuellen Preview-Version von babylonjs gibt es eine zusätzliche Moduldatei (./dist/preview release/babylon.module.d.ts). Wenn ich versuche, babylonjs in angular2 auf diese Weise zu verwenden, bekomme ich jetzt "Initializers sind in Umgebungskontexten nicht erlaubt.". Hattest du inzwischen Erfolg? – Wulf

Antwort

1

Erstens:

npm install babylonjs babel-types 
typings install dt~babylon --save --global 
typings install dt~babel-types --save --global 

Dann im Code:

var BABYLON = require('babylon'); 
+0

Für was ist 'babel-types'? – ST7

+0

Nach dem Galavant um die SO und Github für Lösungen, das ist das, das tatsächlich für mich gearbeitet hat, ohne die ds.ts Datei des npm Pakets manuell bearbeiten zu müssen. Und nein, du brauchst die Babel-Typings nicht. – Jefftopia