2016-12-22 2 views
2

Das Aktualisieren von Typescript 2.0.10 zu 2.1.4 scheint etwas in webpack, webpack-stream, ts-loader oder gulp zu brechen, da es meinen Einstiegspunkt nicht mehr respektiert Schluck Quelle Glob. Es scheint, dass alle .ts-Dateien in meinem Projekt (einschließlich der im Ordner/server source) enthalten sind und nicht nur die ts-Dateien in/client und app.ts gemäß dem gulp.src- und webpack-Einstiegspunkt. Gibt es einen anderen/neueren/besseren Weg, den ich tun sollte?TypeScript 2.1.4 breaking änderungen in webpack ts-loader

in schluck Datei:

const serverPath = 'server'; 
const clientPath = 'client'; 
const buildPath = 'build'; 
const paths = { 
    server: { 
     scripts: [ 
      `${serverPath}/**/*.ts` 
     ] 
    }, 
    client: { 
     files: [ 
      `${clientPath}/**/*` 
     ], 
     scripts: [ 
      `${clientPath}/**/*.ts` 
     ], 
     entry: `${clientPath}/app.ts` 
    } 
}; 


gulp.task('build:client', cb => { 
    gulp.src(paths.client.entry) 
     .pipe(webpackStream(webpackConfig, webpack)) 
     .pipe(gulp.dest(`${buildPath}/${clientPath}`)); 
    cb(); 
}); 

in Web-Pack config:

entry: { 
    app: './client/app.ts' 
} 

ts: { 
    configFileName: './tsconfig.json' 
} 

resolve: { 
    extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'] 
} 

module: { 
    loaders: [ 
     { test: /\.ts$/, loader: 'ng-annotate-loader!ts-loader' } 
    ] 
} 

in tsconfig.json:

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es6", 
     "removeComments": false, 
     "noImplicitAny": true, 
     "sourceMap": true, 
     "inlineSources": true, 
     "experimentalDecorators": true, 
     "emitDecoratorMetadata": true 
    } 
} 

Ausgang mit 2.0.10:

ts-loader: Using [email protected] and /Users/chris/code/class-app/tsconfig.json 
[20:47:36] Version: webpack 1.14.0 
Asset  Size Chunks    Chunk Names 
app.js.map 950 bytes  0 [emitted] app 
app.js 550 bytes  0 [emitted] app 

Ausgang mit 2.1.4:

ts-loader: Using [email protected] and /Users/chris/code/class-app/tsconfig.json 
server/api/thing/thing.controller.ts(17,16): error TS2322: <ts error in server portion, not relevant> 
[20:53:03] TypeScript: 1 semantic error 
[20:53:03] TypeScript: emit succeeded (with errors) 
Unhandled rejection Error in plugin 'webpack-stream' 
Message: 
/Users/chris/code/class-app/server/api/thing/thing.controller.ts <same as above> 
+1

Warum sagen Sie, dass der Fehler nicht relevant ist? Sieht für mich sehr relevant aus. Ihr Typoskript ist ungültig für 2.1.4, aber nicht 2.0.10 – Rob

+1

Es soll nicht die Server-ts an erster Stelle kompilieren (nur der Client ts.) –

Antwort

2

Offenbar ist das Problem Typoskript in WebPack wurde auf dem Server-Code die ganze Zeit laufen (obwohl es nicht sein soll), und obwohl ich geplant hatte, den Server zu beheben TS-Problem, das Upgrade von TypeScript eingeführt, was es wirklich ausgesetzt war, war WebPack kompilieren von Dateien, die es nicht die ganze Zeit haben sollte. Getestet wurde dies, indem absichtlich ein Problem mit dem Server ts auf der vorherigen ("funktionierenden") Version von TypeScript eingeführt wurde, wobei der gleiche Fehler erhalten wurde.

Ich muss immer noch herausfinden, warum es versucht, alle meine TS-Dateien zu kompilieren, und nicht nur die in/Client, aber ich werde eine neue Frage dafür stellen.

Verwandte Themen