2017-02-23 2 views
3

Ich verwende aurelia mit Typoskript und ich wollte wie mit relativem Importpfad vermeiden:Aurelia Bündelung versagt, wenn die relativen Importpfad mit

import { DialogBox } from '../../resources/elements/dialog-box'; 

sondern

import { DialogBox } from 'resources/elements/dialog-box'; 

ich meine TSconfig geändert. json, so dass der Compiler relative Pfade behandelt, indem er baseUrl und Pfade wie folgt hinzufügt:

"compilerOptions": { 
"sourceMap": true, 
"target": "es5", 
"module": "amd", 
"declaration": false, 
"noImplicitAny": false, 
"removeComments": true, 
"emitDecoratorMetadata": true, 
"experimentalDecorators": true, 
"moduleResolution": "node", 
"lib": ["es2015", "dom"], 
"baseUrl": ".", 
"paths": { 
    "*":["src/*"] 
} 

} ...

Aber wenn ich laufe den Befehl des cli ‚au laufen --watch‘ ich alle Schritte sehen adaequat bis zum writeBundle Schritt, schlägt fehl, wenn einige Dateien Tracing:

Starting 'processMarkup'... 
Starting 'processCSS'... 
Starting 'configureEnvironment'... 
Finished 'configureEnvironment' 
Starting 'buildTypeScript'... 
Finished 'processCSS' 
Finished 'processMarkup' 
Finished 'buildTypeScript' 
Starting 'writeBundles'... 

der Prozess schlägt mit dem folgenden Fehler:

Tracing resources/elements/dialog-box... 
{ uid: 11, 
    name: 'writeBundles', 
    branch: false, 
    error: 
    { [Error: ENOENT: no such file or directory, open 'C:\...\src\resources\elements\dialog-box.js'] 
    errno: -4058, 

Das merkwürdige ist: es gibt auch andere Dateien, die mit nicht-relativem Pfad referenziert werden und wo der Bundler nicht versagt.

Und noch eine seltsame Sache: Wenn ich den relativen Pfad und Bündel mit dem Beobachter verlassen, funktioniert alles gut. Dann, wenn ich die relative '../../' aus dem problematischen Import entfernen, bekomme ich eine Bündelung Warnung, aber alles funktioniert sowieso ...

Irgendeine Idee, was ich falsch gemacht haben könnte?

EDITED FÜR KORREKTUR:

ich nur understoof warum einige Dateien gebündelt zu werden schien, andere dagegen nicht. Ich habe festgestellt, dass alle Dateien mit "Root-relativen" Importen, die nicht fehlgeschlagen sind, tatsächlich aus anderen Dateien mit einem relativen Pfad importiert wurden. Also nehme ich an, der Bundler findet sie von dort. Das löst eine Sache, aber das Grundproblem ist immer noch da: aurelia-cli Bündelung schlägt fehl, wenn es „root-relative“ Importe ...

FÜR LÖSUNG EDITED: Dank der Lösung von Sinan Bolel hier unter, das relative Pfad Problem wurde durch die Aktualisierung einig Pakete gelöst:

npm i -D [email protected]^3.1.5 [email protected]^2.1.0 [email protected]^1.0.0 

die semantischen Fehler ich habe danach kam von einigen Typisierungen, die noch installiert wurden und nicht so gut wie zu haben Typoskript installiert als lokales npm Paket sowie global benötigt . Ich habe sie deinstalliert und alle Fehler sind verschwunden.

npm uninstall @types/es6-promise 
npm uninstall @types/es6-collections 
npm uninstall typescript 
+0

Wenn Sie vermuten, dass dies ein Fehler ist, können Sie ein öffnen Ausgabe im CLI [Github-Repository] (https://github.com/aurelia/cli/issues) – JeroenVinke

+0

Ich habe das folgende github-Problem erstellt: https://github.com/aurelia/cli/issues/494 – Gaet

Antwort

1

Werfen Sie einen Blick auf diese Gist example in denen:

  • ich eine Klasse Init in src/lib/init.ts
  • I import init from 'lib/init' in src/main.ts ohne einen relativen Pfad
  • I ändern main.ts bis import environment from 'environment' im Gegensatz zu from './environment' - was auch funktioniert.


Mit den original tsconfig generated by the CLI, mein Build mit dem Fehler fehlgeschlagen:

src/main.ts(3,18): error TS2307: Cannot find module 'lib/init'. 

zum tsconfig in my Gist Nach dem Wechsel gelang es das Build.

(ungültig) Vorschläge:

In TSconfig, können Sie versuchen Sie es:

a) ./ vor src in compilerOptions.paths Hinzufügen (das das Problem auf meinem Rechner löst)

paths: {"*": ["./src/*"]} 
       ^

b) Hinzufügen filesGlob

"filesGlob": [ 
    "./src/**/*.ts", 
    "./test/**/*.ts", 
    "./typings/index.d.ts", 
    "./custom_typings/**/*.d.ts" 
], 

edit: Vorherige Vorschläge hat nicht funktioniert, wie etwa die Aktualisierung von Paketen:

npm i -D [email protected]^3.1.5 [email protected]^2.1.0 [email protected]^1.0.0 

Ergebnisse anzeigen in https://github.com/aurelia/cli/issues/494#issuecomment-282103289

+0

Danke für Ihre Eingang. Leider löst das mein Problem nicht. Die Typoskript-Kompilierung funktioniert problemlos, nur die Bündelung ist problematisch. – Gaet

+1

über https://github.com/aurelia/cli/issues/494#issuecomment-282103289 - 'npm i [email protected]^3.1.5 [email protected]^2.1.0 [email protected]^1.0.0 ' –

+0

Ich entschuldige mich @Gaet Ich habe keine gute Arbeit gemacht Lesen Sie Ihre Frage lassen Sie mich wissen, wenn die Updates helfen! –