2017-05-10 8 views
0

Wenn ich versuche, ein externes Modul zu importieren, und wenn versuchen, meinen Code zu kompilieren, erscheint diese Fehlermeldung: app.ts:1 Uncaught ReferenceError: require is not defined at app.ts:1. Die Typoskript-Version ist: 2.1.6.Import/Export-Module - Typescript

meine app.ts Datei:

import {PI, calcCircumference } from "./math/circle"; 

console.log(PI); 
console.log(calcCircumference(10)); 
//console.log(); 

meine circle.ts Datei

export const PI: number = 3.14; 

export function calcCircumference(diameter: number) { 

    return diameter * PI; 
}; 

meine tsconfig.json Datei

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es5", 
     "noImplicitAny": false, 
     "sourceMap": true 
    } 
} 

Danke alle

Antwort

1

Ich nehme an, Sie versuchen, Ihren Code in der Client-Umgebung - Ihrem Browser zu starten. In diesem Fall müssen Sie den Modullader konfigurieren, da im Gegensatz zu Server-Umgebungen, wie z. B. node.js, Browser das Laden von Modulen (noch) nicht unterstützen und nicht wissen, wie Sie ein bestimmtes Modul "benötigen".

Sie haben hier mehrere Möglichkeiten:

  1. Bündelung Tools wie browserify/webpack
  2. Lader wie requirejs/systemjs

Google und Sie werden viele Anleitungen, wie die Einrichtung Typoskript finden mit eines der obigen (zum Beispiel: systemjs, webpack)

Meine persönliche Präferenz ist systemjs (mit jspm als Paket-Manager) - aber Ihre Wahl wird stark von den spezifischen Anforderungen für die Anwendung abhängen, die Sie erstellen.