2017-02-08 28 views
7

İçinde itfaiyeci ve krom içinde çalışan bir açısal 2 uygulaması var, içte değil (iç) IE. Benim yığın izime dayanarak, Sistem js kurulumumda bir sorun var gibi görünüyor.Sistem js sözdizimi hatası, IE11

Web konsolumun içinde gördüğüm hata açıklaması İşte. benim

app/app.module.js 

bulamıyorlar

Error: (SystemJS) Syntax error 
SyntaxError: Syntax error 
    at ZoneDelegate.prototype.invoke (http://localhost:8050/node_modules/zone.js/dist/zone.js:230:13) 
    at Zone.prototype.run (http://localhost:8050/node_modules/zone.js/dist/zone.js:114:17) 
    at Anonymous function (http://localhost:8050/node_modules/zone.js/dist/zone.js:502:17) 
Evaluating http://localhost:8050/app/app.module.js 
Error loading http://localhost:8050/app/app.module.js as "./app.module" from http://localhost:8050/app/main.js 

görünüyor Ama dediğim gibi, ben firefox ve krom bu sorunu olmadı.

internette biraz etrafına baktı ve polyfill dolgularının hakkında bir şey buldum .. bu yüzden benim index.html

<script src="/node_modules/core-js/client/shim.min.js"></script> 
<script src="/node_modules/systemjs/dist/system-polyfills.src.js"></script> 

Bu hızlı bir düzeltme sağlayacak umuyordum içinde aşağıdakiler de dahil olmak çalıştı, ama görünüşe Bu durum böyle değil. Bu noktadan nasıl devam edileceğine dair herhangi bir tavsiye var mı?

Düzenleme:

Ben IE 11 web konsolu içine alıyorum bir 404 keşfettiler.

bir istek systemjs klasörü içinde

URL Protocol Method Result Type Received Taken Initiator Wait‎‎ Start‎‎ Request‎‎ Response‎‎ Cache read‎‎ Gap‎‎ 
/node_modules/systemjs/dist/Promise.js.map HTTP GET 404 text/html 210 B 16 ms XMLHttpRequest 140 0 16 0 0 5266 

veya Promise.js.map vurmak çalışıyor gibi görünüyor ve onu orada yok. Yani

, birkaç yeni sorular

1) denedim diğer tarayıcılarda gerekmediği/Bu istek neden yapılıyor değil mi?

2) Bu dosya ne yapıyor, nereden bulabilirim? Hala bu sözdizimi hatalarimi yakaladigimdan emin olacagim hala emin degil, ama baslamak için makul bir yer gibi görünüyor.

Ben de çıkardıktan sonra/

<script src="/node_modules/systemjs/dist/system-polyfills.src.js"></script> 

Promise.js.map için istek artık yapılıyor

dışında yorum fark ettim. Bu yüzden POLYFIL tam ne yaptığını emin değilim, ama bir 404.

Düzen 2 sonuçlanan bu isteği tanıtmak görünüyor:

benim tsconfig bulunan benim ES6 hedefi, anahtarlama denedim

. Json, bir ES5 hedefine, here ayrıntılı olarak. Şimdi, denediğimde ve oluşturduğumda, bir sürü başka sorunla karşılaşıyorum, yığın izlemesi this post tarafından iyi tanımlanabilir. ES5 hedefe geçiş yaparak

, ben

Böyle bu

ekleme gibi o soru için düzeltmeleri, bazılarına bakarak denedim ... vb Haritası, Promise, erişimi yok
///<reference path="node_modules/angular2/typings/browser.d.ts"/> 

main.ts dosyasının en üstünde, ancak bir angular2 klasörüne sahip değilim, bunun yerine bir #anagular klasörü sahibiyim. Ve yazım dizini bulunacak yer yok.Ben bu şeyi gradle ile yapıyorum/dağıttım, bu yüzden yerel makineme yazarak yükleme yapamayacağım ve bir gün onu arayamıyorum ...

3: Bunun için bir ödül teklif ettim. Son zamanlarda, başka bir bölüm denedim.

<script src="/node_modules/core-js/client/shim.min.js"></script> 

Bu hala benim için çalışmıyor. Aynı orijinal sözdizimi hatasını alıyorum. Benim main.ts baktığımızda

ben 3. satırını açıklama, web konsolundaki hatalarının ortadan kalkıp, ama şimdi tabii benim app önyükleyemez gelmez
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 
platformBrowserDynamic().bootstrapModule(AppModule); 

dosya.

Sadece tekmelemek için, burada nihayet bu var benim tsconfig.json

{                                                     
    "compilerOptions": {                                                
    "target": "es6",                                                
    "module": "system",                                                
    "moduleResolution": "node",                                              
    "experimentalDecorators": true                                             
},                                                    
    "exclude": [                                                  
    "node_modules",                                                 
    "jspm_packages"                                                 
    ]                                                     
} 
+0

, bir SyntaxError aldığınızdan, hiçbir polifilize yardımcı olmayacaktır. Polyfills, eski tarayıcılara eksik işlevleri/nesneleri ekleyebilir, örneğin: Map, Set, Array.prototype.forEach. Sözdizimi hatasıyla başa çıkmak için kodunuzun aktarılması gerekir - bu genellikle Babel veya Google Closure kullanılarak yapılır. Hata ayıklamak için sorunun tam olarak nedenini kontrol etmek en iyisidir, stacktrace'inizde http: // localhost: 8050/node_modules/zone.js/dist/zone.js - satır: 230 – chrmod

+0

ile ilgili sorularımı güncelledim. bazı yeni bilgiler. – Zack

cevap

6

, bu kolay değildi. Birkaç farklı şeyi düzeltmem gerekiyordu.

1) Ben index.html dosyasına doğru şim dahil etmek gerekli tsconfig.json te "ES5"

{                                                     
    "compilerOptions": {                                                
     "target": "es6",  ==> "target" : "es5",                                               
     "module": "system",                                                
     "moduleResolution": "node",                                              
     "experimentalDecorators": true                                             
    },                                                    
    "exclude": [                                                  
     "node_modules",                                                 
     "jspm_packages"                                                 
    ]                                                     
} 

2) benim "hedef" belirlemek için gerekli

<script src="/node_modules/core-js/client/shim.min.js"></script> 
Bu

node_modules/rxjs/operator/toPromise.d.ts(7,59): error TS2304: Cannot find name 'Promise'. 
node_modules/rxjs/operator/toPromise.d.ts(7,69): error TS2304: Cannot find name 'Promise'. 
node_modules/rxjs/operator/toPromise.d.ts(9,9): error TS2304: Cannot find name 'Promise'. 
node_modules/rxjs/operator/toPromise.d.ts(10,26): error TS2304: Cannot find name 'Promise'. 
node_modules/rxjs/operator/toPromise.d.ts(10,36): error TS2304: Cannot find name 'Promise'. 
gibi şeylerle, benim yapı sürecinde> JS transpile adım -

bu 2 şey yaptıktan sonra, hala TS dev bir yığın izlemesini vardı3) Son adım, açıkça benim app/main.ts dosyasının en üstünde bu referansı

/// <reference path= "../node_modules/typescript/lib/lib.es6.d.ts" /> 

dahil etmek gerekiyordu.

Bu 3 adımı yapıp projeyi yeniden oluşturduktan sonra, işler sonunda IE üzerinde çalışmaya başladı.

Bana ulaşmak için this post ve this post'a teşekkürler.

+0

Benim için çalıştı, teşekkürler! –

+1

Sorun değil. Bu yüzden her zaman kendi sorularıma cevap veriyorum :) – Zack

+0

** Adım 2'yi düzeltmek için ne yaptınız? Yığın izi demek istediğim –