2016-10-20 2 views
2

Ich versuche, ein Angular JavaScript (ES5) -Projekt Schritt für Schritt in TypeScript 2.0 zu migrieren und muss zugeben, dass ich sehr zu kämpfen habe.
Also zuerst habe ich die index.js zu index.ts geändert und die recommended method of installing typings (npm install --save @types/node) anstelle der alten typings.json Weg verwendet.Fehlende TypeScript-Typisierung mit browserify + babelify + tsify

Build-Setup verwendet gulp mit browserify und jetzt der Einführung tsify und babelify als here vorgeschlagen.

browserify

//... 
.plugin(tsify) 
.transform(babelify, { 
     presets: ['es2015'], 
     extensions: ['.ts', '.js'] 
}) 
//... 

tsconfig.json

{ 
"files": [ 
    "assets/app/index.ts" 
], 
"compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
} 
} 

jedoch die Erstellung fehl mit:

TypeScript error: .tmp/public/app/index.ts(4,15): Error TS2304: Cannot find name 'require'.

tsify scheint nicht die insta zu kopieren lilled Typings zum Ausgang dir, der den obigen Fehler verursacht.
Irgendwelche Vorschläge zur Lösung des Problems?

EDIT
Kopieren der node_modules/@ Typen Ordner an der Wurzel meines Laufwerk C: den Fehler beseitigt, aber ich habe keine Ahnung, warum ...

Antwort

1

Falls jemand das gleiche läuft in Problem:

Explictly Hinzufügen der typesRoot Option in tsconfig.json behoben.

Diese "sollte" sollte die Standardeinstellung sein, aber aus irgendeinem Grund sucht sie nach dem @ types-Ordner unter C: Laufwerk root.

Von Typoskript docs:

If typesRoots is specified, only packages under typeRoots will be included.

+0

Welche Version von tsify Sie verwenden? – cartant

+0

'" tsify ":"^2.0.2 "' – lenny

+0

Könnten Sie ein [Problem] (https://github.com/TypeStrong/tsify/issues) dafür erstellen? Es sieht wie ein Fehler aus. Sie sollten 'typeRoots' nicht angeben müssen. Könnten Sie auch mehr von Ihrer Konfiguration in das Problem einbeziehen? Ich kann nicht sehen, wie ein Pfad wie '.tmp/public/... 'in Ihrer Fehlermeldung enden sollte. – cartant

Verwandte Themen